Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

e2e tests specific Network/DNS related : add Ipv6 capability #59894

Closed
wants to merge 2 commits into from

Conversation

fturib
Copy link

@fturib fturib commented Feb 14, 2018

What this PR does / why we need it:
Support of IPV6 for e2e network/dns tests.

Use the flag "[Feature:Networking-IPv6]" to run in an IPv6 context only
Use the flag "[Feature:Networking-IPv4]" to run in an IPv4 context only

NOTE: the existing [Conformance] still apply to the same IPv4 tests only.

Which issue(s) this PR fixes *

None, but is related to : coredns/coredns#1236

Special notes for your reviewer

I ran these tests for Ipv6 and for Ipv4 in dedicated environment "Docker-in-Docker" that can propose IPv6 stack.
the IPv4 version is already running part of e2e tests of Kubernetes.

NOTE: I ran the IPv6 ONLY for the "coreDNS" version of DNS. Which is now BETA for v.1.10 and will be GA for v1.11

Release note:

NONE

@k8s-ci-robot k8s-ci-robot added do-not-merge/release-note-label-needed Indicates that a PR should not merge because it's missing one of the release note labels. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Feb 14, 2018
@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Feb 14, 2018
@fturib fturib changed the title e2e tests spcific DNS - add Ipv6 capability e2e tests specific Network/DNS related : add Ipv6 capability Feb 14, 2018
@fturib
Copy link
Author

fturib commented Feb 14, 2018

/assign @danehans

@fturib
Copy link
Author

fturib commented Feb 14, 2018

/assign @leblancd

@k8s-ci-robot
Copy link
Contributor

@fturib: GitHub didn't allow me to assign the following users: leblancd.

Note that only kubernetes members and repo collaborators can be assigned.

In response to this:

/assign @leblancd

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.

@fturib
Copy link
Author

fturib commented Feb 14, 2018

/cc @leblancd

@k8s-ci-robot
Copy link
Contributor

@fturib: GitHub didn't allow me to request PR reviews from the following users: leblancd.

Note that only kubernetes members and repo collaborators can review this PR, and authors cannot review their own PRs.

In response to this:

/cc @leblancd

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.

probeCmd += fmt.Sprintf(`test -n "$$(dig +tcp +noall +answer +search $${podARec} A)" && echo OK > /results/%s;`, podARecByTCPFileName)
podARecByUDPFileName := fmt.Sprintf("%s_udp@Pod%sRecord", fileNamePrefix, typeA)
podARecByTCPFileName := fmt.Sprintf("%s_tcp@Pod%sRecord", fileNamePrefix, typeA)
probeCmd += fmt.Sprintf(`podARec="$$(hostname -i| awk -F. '{print $$1"-"$$2"-"$$3"-"$$4".%s.pod.cluster.local"}')";`, namespace)
Copy link
Author

Choose a reason for hiding this comment

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

There is an error here.
I did not take the right file. should call the ReverseAddr function

@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Feb 26, 2018
@fturib
Copy link
Author

fturib commented Mar 14, 2018

This PR needs rebase.
But in order to test locally the change after rebase, I need to validate in IPv4 and Ipv6 environment.

Currently an error of deployment in the docker-in-docker tool I use for testing is preventing to go ahead.

I am waiting on this PR : kubernetes-retired/kubeadm-dind-cluster#85
(fix of kubernetes-retired/kubeadm-dind-cluster#82).

@pmichali
Copy link
Contributor

pmichali commented Apr 12, 2018

@fturib Can you rebase this now that DinD PR #85 is merged? I tried E2E test on an IPv6 cluster and this test is failing. I'm wondering if it is just an issue with the probe, or if there is also an issue in test setup, where I see it trying to access API at 127.0.0.1:8080, instead of [::1]:8080.

@fturib
Copy link
Author

fturib commented Apr 12, 2018

@pmichali : since 2 days I tried to run my D-in-D and it runs properly for IPv4, but not for IPv6.
=> the Nodes and Pods are responding when queried directly on their IPv6 address (ping or https) .. but not the services.

Looks like there is a piece missing behind the services.
I tested on "kubernetes" service (the default API) and "kube-dns" service (which points to a pod coredns).

Any idea what can go wrong here ?

(It prevent me to re-verify the test after rebasing).

@leblancd
Copy link

@fturib - In IPv6 mode, when you try to curl kubernetes API service IP from a node, does it matter from which node you try? My guess is that maybe ip6tables aren't getting set up correctly for some reason. Can you check 'ip6tables -t nat -L | grep kube'. You can IM on Slack (my ID is 'dane' in kubernetes) if you prefer.

@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Apr 12, 2018
@fturib
Copy link
Author

fturib commented Apr 12, 2018

PR is up to date.
I was able to test locally in those conditions, with a D-in-D cluster:

  • IPv4 / CoreDNS (../../mirantis/kubeadm-dind-cluster/dind-cluster.sh e2e 'DNS' 'IPv6')
  • IPv4/kube-dns (../../mirantis/kubeadm-dind-cluster/dind-cluster.sh e2e 'DNS' 'IPv6 ')
  • IPv6/CoreDNS (../../mirantis/kubeadm-dind-cluster/dind-cluster.sh e2e 'DNS' 'IPv4')

For all of them, the usual DNS tests are passing.
However all of the federation related DNS tests are failing (whatever CroeDNS or KubeDNS).

These failing tests are:

  • [It] should be able to change federation configuration [Slow][Serial]
  • [It] should be able to change stubDomain configuration [Slow][Serial]
  • [It] should forward PTR records lookup to upstream nameserver [Slow][Serial]

@fturib
Copy link
Author

fturib commented Apr 12, 2018

@freehan , @dnardo : thanks to review the PR.

@leblancd : thanks for your help on my D-in-D cluster installation (finally, now I am able to shutdown and rebuild .. it is working all times ..)

@pmichali : let me know if that is ok.

@pmichali
Copy link
Contributor

@fturib Does the test for "DNS [It] should provide DNS for services [Conformance]" pass, when using an IPv6 cluster in kube-dns and coredns mode? I was seeing that test failing (without any changes applied). One concern that I had, was it seemed that during test setup (the Before part), it was trying to access the API to check nodes and it was using 127.0.0.1:8080, which was failing (should be [::1]:8080?)

@fturib
Copy link
Author

fturib commented Apr 16, 2018

@pmichali : without these changes, the tests : "DNS ... Should provide ..." will not work for IPv6, at least because the DNS query is "A" instead of "AAAA".

with the changes of this PR, you will need to select to run either the IPv4 test, either IPV6 tests ...
NOTE: the IPV6 tests are NOT "[Conformance]" (only the IPV4 tests are).
(You need to filter on "DNS [Feature:Networking-IPv6] ....")

about "127.0.0.1:8080" I cannot say ... I had no need to change anything there, only about the DNS queries.

@pmichali
Copy link
Contributor

@fturib Yes, I am running the test on an IPv6 cluster, and using the ginkgo focus to include this test. It is failing in the Before step, being unable to access the API, and is not even getting to the actual test.

Did you happen to run this test in IPv6 mode for kube-dns? For coredns? Do you see this error (or success in accessing the API)?

@fturib
Copy link
Author

fturib commented Apr 16, 2018

@pmichali : if am a little confused by the name of the test you are talking about:
the test named : "DNS [It] should provide DNS for services [Conformance]" - CANNOT be a test with the changes of this PR

with the current PR, you can only have:

  • "DNS [Feature:Networking-IPv4] [It] should provide DNS for services [Conformance]"
  • or "DNS [Feature:Networking-IPv6] [It] should provide DNS for services"

If you have exactly : "DNS [It] should provide DNS for services [Conformance]" - it means you are running WITHOUT this PR and in that case the test is working only for IPV4

@pmichali
Copy link
Contributor

@fturib Right, I'm running without the PR, and I see a failure in IPv6 mode. I know that it is not doing the right probe command, but it seemed (when I ran it) that it was failing before that point, and not able to communicate with the API.

I was wondering whether or not the test works in IPv6 with kube-dns, when using this PR (I'm assuming it works with coredns). I'll try to apply this PR to my environment and run the test (once I get my IPv6 test bed working again).

@fturib
Copy link
Author

fturib commented Apr 17, 2018

@pmichali : I am running in IPv6 environment, with kube-dns server, I get the following errors in 'kubedns' pod:

kubectl logs pod/kube-dns-7d7ff7d67d-zzdng kubedns -n kube-system -f

...
I0417 12:40:45.759507       1 logs.go:41] skydns: error from backend: Invalid IP Address fd00.77..2.0.0.2
I0417 12:40:45.804140       1 logs.go:41] skydns: error from backend: Invalid IP Address fd00.77..2.0.0.4
I0417 12:40:45.809568       1 logs.go:41] skydns: error from backend: Invalid IP Address fd00.77..2.0.0.4
I0417 12:40:46.190569       1 logs.go:41] skydns: error from backend: Invalid IP Address fd00.77..1.0.0.3
I0417 12:40:46.200843       1 logs.go:41] skydns: error from backend: Invalid IP Address fd00.77..1.0.0.3
I0417 12:40:46.805180       1 logs.go:41] skydns: error from backend: Invalid IP Address fd00.77..2.0.0.2
I0417 12:40:46.817782       1 logs.go:41] skydns: error from backend: Invalid IP Address fd00.77..2.0.0.2
I0417 12:40:46.878474       1 logs.go:41] skydns: error from backend: Invalid IP Address fd00.77..2.0.0.4
...

Other pods seems in better shape:

kubectl logs pod/kube-dns-7d7ff7d67d-zzdng dnsmasq -n kube-system

I0417 12:30:25.307366       1 main.go:74] opts: {{/usr/sbin/dnsmasq [-k --cache-size=1000 --no-negcache --log-facility=- --server=/cluster.local/::1#10053 --server=/in-addr.arpa/::1#10053 --server=/ip6.arpa/::1#10053] true} /etc/k8s/dns/dnsmasq-nanny 10000000000}
I0417 12:30:25.307478       1 nanny.go:94] Starting dnsmasq [-k --cache-size=1000 --no-negcache --log-facility=- --server=/cluster.local/::1#10053 --server=/in-addr.arpa/::1#10053 --server=/ip6.arpa/::1#10053]
I0417 12:30:25.516783       1 nanny.go:116] dnsmasq[18]: started, version 2.78 cachesize 1000
I0417 12:30:25.516783       1 nanny.go:119] 
I0417 12:30:25.516802       1 nanny.go:116] dnsmasq[18]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect inotify
W0417 12:30:25.516805       1 nanny.go:120] Got EOF from stdout
I0417 12:30:25.516810       1 nanny.go:116] dnsmasq[18]: using nameserver ::1#10053 for domain ip6.arpa 
I0417 12:30:25.516813       1 nanny.go:116] dnsmasq[18]: using nameserver ::1#10053 for domain in-addr.arpa 
I0417 12:30:25.516816       1 nanny.go:116] dnsmasq[18]: using nameserver ::1#10053 for domain cluster.local 
I0417 12:30:25.516830       1 nanny.go:116] dnsmasq[18]: reading /etc/resolv.conf
I0417 12:30:25.516834       1 nanny.go:116] dnsmasq[18]: using nameserver ::1#10053 for domain ip6.arpa 
I0417 12:30:25.516837       1 nanny.go:116] dnsmasq[18]: using nameserver ::1#10053 for domain in-addr.arpa 
I0417 12:30:25.516841       1 nanny.go:116] dnsmasq[18]: using nameserver ::1#10053 for domain cluster.local 
I0417 12:30:25.516844       1 nanny.go:116] dnsmasq[18]: using nameserver fd00:77::100#53
I0417 12:30:25.516848       1 nanny.go:116] dnsmasq[18]: read /etc/hosts - 7 addresses

root@kube-master:/# kubectl logs pod/kube-dns-7d7ff7d67d-zzdng sidecar -n kube-system

I0417 12:30:26.706801       1 main.go:51] Version v1.14.9
I0417 12:30:26.706841       1 server.go:45] Starting server (options {DnsMasqPort:53 DnsMasqAddr:127.0.0.1 DnsMasqPollIntervalMs:5000 Probes:[{Label:kubedns Server:[::1]:10053 Name:kubernetes.default.svc.cluster.local. Interval:5s Type:33} {Label:dnsmasq Server:[::1]:53 Name:kubernetes.default.svc.cluster.local. Interval:5s Type:33}] PrometheusAddr:0.0.0.0 PrometheusPort:10054 PrometheusPath:/metrics PrometheusNamespace:kubedns})
I0417 12:30:26.706865       1 dnsprobe.go:75] Starting dnsProbe {Label:kubedns Server:[::1]:10053 Name:kubernetes.default.svc.cluster.local. Interval:5s Type:33}
I0417 12:30:26.706901       1 dnsprobe.go:75] Starting dnsProbe {Label:dnsmasq Server:[::1]:53 Name:kubernetes.default.svc.cluster.local. Interval:5s Type:33}

@fturib
Copy link
Author

fturib commented Apr 17, 2018

Result of test for kube-dns in IPv6 environment:

command launched (run all DNS e2e test, except the one specific to IPv4):

../../mirantis/kubeadm-dind-cluster/dind-cluster.sh e2e 'DNS' 'IPv4'

Summarizing 6 Failures:

[Fail] [sig-network] DNS configMap nameserver [It] should be able to change stubDomain configuration [Slow][Serial]
[Fail] [sig-network] DNS configMap federations [It] should be able to change federation configuration
[Fail] [sig-network] DNS configMap nameserver [It] should forward PTR records lookup to upstream
[Fail] [sig-network] DNS [Feature:Networking-IPv6] [It] should provide DNS for pods for Hostname and
[Fail] [sig-network] DNS [Feature:Networking-IPv6] [It] should provide DNS for the cluster  
[Fail] [sig-network] DNS [Feature:Networking-IPv6] [It] should provide DNS for services  

Ran 8 of 888 Specs in 631.187 seconds
FAIL! -- 2 Passed | 6 Failed | 0 Pending | 880 Skipped 

Copy link
Member

@oomichi oomichi left a comment

Choose a reason for hiding this comment

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

Thanks for doing this, just few comments

f := framework.NewDefaultFramework("dns")

/*
Release : v1.9
Testname: DNS, cluster
Testname: DNS, cluster,
Copy link
Member

Choose a reason for hiding this comment

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

nit: Why do we need this Testname?

f := framework.NewDefaultFramework("dns")

/*
Release : v1.9
Testname: DNS, cluster
Testname: DNS, cluster,
Description: When a Pod is created, the pod MUST be able to resolve cluster dns entries such as kubernetes.default via DNS and /etc/hosts.
*/
Copy link
Member

Choose a reason for hiding this comment

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

The comment of line 39-43 is for conformance test.
We need to move the comment to line 74 if IPv4's one only is a conformance test, I think.

Copy link
Member

Choose a reason for hiding this comment

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

@fturib this still needs to be addressed

@@ -96,8 +104,7 @@ var _ = SIGDescribe("DNS", func() {
Testname: DNS, services
Description: When a headless service is created, the service MUST be able to resolve all the required service endpoints. When the service is created, any pod in the same namespace must be able to resolve the service by all of the expected DNS names.
*/
Copy link
Member

Choose a reason for hiding this comment

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

ditto

Copy link
Member

Choose a reason for hiding this comment

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

@fturib this as well

@fturib
Copy link
Author

fturib commented Feb 14, 2019

@oomichi : are you sure about the comments of the tests ?
I will remove the extra ","

I am seeing it is used to process all tests with [Conformance] flag and transform into a ItConformance(..) kind if code.

@fturib
Copy link
Author

fturib commented Feb 15, 2019

I wanted to be smart and share the sync with 2 machines ... but looks like I am wrong and need to resync properly.
Ignore last change ... I will come later with another commit after local tests. Sorry

arr[i], arr[j] = arr[j], arr[i]
const hexDigit = "0123456789abcdef"

func ReverseAddr(addr string) (arpa string) {
Copy link
Member

Choose a reason for hiding this comment

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

doesn't seem like named return is being used

Copy link
Author

Choose a reason for hiding this comment

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

right. removed.

return ""
}
if ip.To4() != nil {
return strconv.Itoa(int(ip[15])) + "." + strconv.Itoa(int(ip[14])) + "." + strconv.Itoa(int(ip[13])) + "." +
Copy link
Member

Choose a reason for hiding this comment

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

if ip4 := ip.To4(); ip4 != nil {
  return fmt.Sprintf("%d.%d.%d.%d.in-addr.arpa", ip4[3], ip4[2], ip4[1], ip4[0])
}

strconv.Itoa(int(ip[12])) + ".in-addr.arpa."
}
// Must be IPv6
buf := make([]byte, 0, len(ip)*4+len("ip6.arpa."))
Copy link
Member

Choose a reason for hiding this comment

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

just do var buf string; don't over optimize

Copy link
Author

Choose a reason for hiding this comment

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

code updated.

// Add it, in reverse, to the buffer
for i := len(ip) - 1; i >= 0; i-- {
v := ip[i]
buf = append(buf, hexDigit[v&0xF])
Copy link
Member

Choose a reason for hiding this comment

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

  v := ip[i]
  buf += fmt.Sprintf("%x%.x.", v&0xf, v>>4)
}
return buf + "ip4.arpa."

Copy link
Author

Choose a reason for hiding this comment

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

code updated.

}
}

var _ = SIGDescribe("DNS [IPv4]", func() {
Copy link
Member

Choose a reason for hiding this comment

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

Feature:Networking-IPv4?

Copy link
Author

@fturib fturib Feb 20, 2019

Choose a reason for hiding this comment

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

here we cannot set [Feature:Networking-IPv4], because "Feature" is a keyword used in the e2e tests, and are most often just skipped.
We want to flag IPv4 - but keep the usual information, especially "Conformance".

@fturib
Copy link
Author

fturib commented Feb 20, 2019

/retest

@k8s-ci-robot
Copy link
Contributor

@fturib: Cannot trigger testing until a trusted user reviews the PR and leaves an /ok-to-test message.

In response to this:

/retest

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.

@fturib
Copy link
Author

fturib commented Feb 20, 2019

@bowei : Looks like I lack a "ok-to-test" label now ... could you add it ?

@rajansandeep
Copy link
Contributor

/ok-to-test

@k8s-ci-robot k8s-ci-robot added the ok-to-test Indicates a non-member PR verified by an org member that is safe to test. label Feb 20, 2019
@fturib
Copy link
Author

fturib commented Feb 20, 2019

@bowei : i updated the code following review comments.
NOTE: I cannot set the name of e2e to "Feature:Networking-IPv4" as "Feature" has a special meaning and would prevent these tests to run as usual.

@fturib
Copy link
Author

fturib commented Feb 27, 2019

/test pull-kubernetes-e2e-gce

@fturib
Copy link
Author

fturib commented Feb 28, 2019

@bowei : I rebased after changes (I guess linked to windowss integration in the dns.go tests).
Can we go ahead and have this PR merged ?

I think I replied all concerns and comments.
Let me know. Thanks!

@soggiest
Copy link

soggiest commented Mar 5, 2019

1.14 code freeze is coming up in 3 days. @kubernetes/sig-network-pr-reviews can someone do a final review and merge?

@fturib
Copy link
Author

fturib commented Mar 7, 2019

@bowei , @thockin : can we push to get this done before needed a new rebase ? Thanks !

Copy link

@cmluciano cmluciano left a comment

Choose a reason for hiding this comment

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

couple of nits but overall looks good. Please be sure to address @bowei 's remaining comments

})
}

// only IPv4 is conformance for now

Choose a reason for hiding this comment

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

nit: let's list this as a TODO:

Copy link
Author

Choose a reason for hiding this comment

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

Are you sure.
the TODO would be to run IPv6 Conformance tests .. it is a k8s-wide tests issue. Not only this one.

Copy link
Author

Choose a reason for hiding this comment

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

I removed that comment.

Expect(f.WaitForPodRunning(testUtilsPod.Name)).NotTo(HaveOccurred(), "failed to wait for pod %s to be running", testUtilsPod.Name)

By("Verifying customized DNS option is configured on pod...")
// TODO: Figure out a better way other than checking the actual resolv,conf file.

Choose a reason for hiding this comment

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

Suggested change
// TODO: Figure out a better way other than checking the actual resolv,conf file.
// TODO: Figure out a better way other than checking the actual resolv.conf file.

Copy link
Author

Choose a reason for hiding this comment

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

ok.

@fturib
Copy link
Author

fturib commented Mar 7, 2019

@cmluciano : I think I already addressed the comment of @bowei no ? Which one are not included ?

@fturib
Copy link
Author

fturib commented Mar 7, 2019

@aanandr - Thanks to look if this PR can be useful for the work on dual stack Ipv4/Ipv6.
Let me know.
Thanks!

@cmluciano
Copy link

Copy link
Member

@spiffxp spiffxp left a comment

Choose a reason for hiding this comment

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

/hold
I appreciate how old this PR is and how much work has been put in to get it this far, but I have a number of objections to it landing as-is, mainly around the conformance related stuff.

Given where we are with our CI Signal (through no fault of your own) I feel like this should be removed from the milestone at this point.

I will leave this in for now, if you are willing to put in a super quick turnaround on the requested changes

f := framework.NewDefaultFramework("dns")

/*
Release : v1.9
Testname: DNS, cluster
Testname: DNS, cluster,
Description: When a Pod is created, the pod MUST be able to resolve cluster dns entries such as kubernetes.default via DNS and /etc/hosts.
*/
Copy link
Member

Choose a reason for hiding this comment

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

@fturib this still needs to be addressed

@@ -96,8 +104,7 @@ var _ = SIGDescribe("DNS", func() {
Testname: DNS, services
Description: When a headless service is created, the service MUST be able to resolve all the required service endpoints. When the service is created, any pod in the same namespace must be able to resolve the service by all of the expected DNS names.
*/
Copy link
Member

Choose a reason for hiding this comment

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

@fturib this as well

if isIPv6 {
It("should provide DNS for the cluster", testDNSforCluster)
} else {
framework.ConformanceIt("should provide DNS for the cluster", testDNSforCluster)
Copy link
Member

Choose a reason for hiding this comment

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

The comments @oomichi pointed out need to live here

if isIPv6 {
It("should provide /etc/hosts entries for the cluster [LinuxOnly]", testHostEntries)
} else {
framework.ConformanceIt("should provide /etc/hosts entries for the cluster [LinuxOnly]", testHostEntries)
Copy link
Member

Choose a reason for hiding this comment

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

Here as well

if isIPv6 {
It("should provide DNS for services", testDNSService)
} else {
framework.ConformanceIt("should provide DNS for services", testDNSService)
Copy link
Member

Choose a reason for hiding this comment

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

And here

@@ -444,14 +446,20 @@ func createDNSPod(namespace, wheezyProbeCmd, jessieProbeCmd, podHostName, servic
return dnsPod
}

func createProbeCommand(namesToResolve []string, hostEntries []string, ptrLookupIP string, fileNamePrefix, namespace, dnsDomain string) (string, []string) {
func createProbeCommand(isIpv6 bool, namesToResolve []string, hostEntries []string, ptrLookupIP string, fileNamePrefix, namespace, dnsDomain string) (string, []string) {
Copy link
Member

Choose a reason for hiding this comment

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

this also remains unresolved

probeCmd += fmt.Sprintf(`test -n "$$(getent %s %s)" && echo OK > /results/%s;`, getentdb, name, fileName)
}

podARecByUDPFileName := fmt.Sprintf("%s_udp@Pod%sRecord", fileNamePrefix, typeA)
Copy link
Member

Choose a reason for hiding this comment

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

Has this been resolved? Because I agree it should be possible for a cluster to be Conformant without using a specific DNS implementation (CoreDNS vs. kube-dns). Given that this function ends up being used in conformance tests I view this as a non-starter

@k8s-ci-robot k8s-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Mar 13, 2019
@spiffxp
Copy link
Member

spiffxp commented Mar 13, 2019

/area conformance
this affects conformance tests

@k8s-ci-robot k8s-ci-robot added the area/conformance Issues or PRs related to kubernetes conformance tests label Mar 13, 2019
@timothysc timothysc removed this from the v1.14 milestone Mar 13, 2019
@spiffxp
Copy link
Member

spiffxp commented Mar 13, 2019

/remove-priority critical-urgent
ref: #59894 (comment)

/milestone clear
after discussing with other conformance reviewers, we're going to punt this out of the milestone, this can land in v1.15

@k8s-ci-robot k8s-ci-robot removed the priority/critical-urgent Highest priority. Must be actively worked on as someone's top priority right now. label Mar 13, 2019
@fturib
Copy link
Author

fturib commented Mar 13, 2019

@spiffxp : Thanks for your review.
My bad: on last SIG-Network review, it was decided that this PR will not be merge, because the IPv6 test framework is not ready, and all this code added for Ipv6 will not be exercised anyway for a long time.

I should have closed it last Thursday already.

@fturib fturib closed this Mar 13, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/conformance Issues or PRs related to kubernetes conformance tests cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. kind/bug Categorizes issue or PR as related to a bug. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. release-note-none Denotes a PR that doesn't merit a release note. sig/cluster-lifecycle Categorizes an issue or PR as relevant to SIG Cluster Lifecycle. sig/network Categorizes an issue or PR as relevant to SIG Network. sig/testing Categorizes an issue or PR as relevant to SIG Testing. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.