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

Networking conformance tests fail in mesh mode #549

Open
nickjameswebb opened this issue Mar 11, 2021 · 12 comments
Open

Networking conformance tests fail in mesh mode #549

nickjameswebb opened this issue Mar 11, 2021 · 12 comments
Labels
lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness.
Milestone

Comments

@nickjameswebb
Copy link

Expected Behavior

Networking conformance tests pass for a Knative Serving + Istio + net-istio (mesh mode enabled) cluster.

Actual Behavior

This test fails with an error like:

util.go:535: Attempt 0 creating service failed with: Service "ingress-conformance-0-visibility-psziwmpb" is invalid: spec.externalName: Required value
visibility.go:84: Error creating Service "serving-tests/ingress-conformance-0-visibility-psziwmpb": Service "ingress-conformance-0-visibility-psziwmpb" is invalid: spec.externalName: Required value

Steps to Reproduce the Problem

  1. On a new cluster, install Knative Serving, Istio (with sidecar injection enabled), and net-istio.
  2. Enable mesh mode via this property in configmap/config-istio.
  3. Run the networking conformance tests.

Additional Info

I have seen this fail with two different configurations:

  1. Knative 0.21.0, Istio 1.9.1
  2. Knative 0.20.0, Istio 1.7.3

Let me know if this issue should be filed with the networking conformance tests. It doesn't seem like this test will ever succeed because the generated private hostname will never resolve to anything while in mesh mode (the spec.ExternalName error is just covering up this real issue).

Thanks very much!

@JRBANCEL
Copy link
Contributor

/assign

@JRBANCEL
Copy link
Contributor

JRBANCEL commented Mar 12, 2021

The test is trying to create a proxy service to test the visibility and that service proxies points to an ExternalName k8s Service pointing to the local gateway defined in ingress.Status.PrivateLoadBalancer.Ingress[0].DomainInternal. In the case pure mesh, this field doesn't exists so the test tries to create a invalid service (empty ExternalName):

privateLoadBalancer:
  ingress:
  - meshOnly: true

In the case of pure mesh, we don't need the ExternalName Service pointing to the (non-existent) local gateway.
The test needs to be tweaked to take this into account.

@nickjameswebb
Copy link
Author

That makes sense. I've tried removing the call to create the ExternalName service, and the result is a DNS lookup error for the generated private hostnames in the test like:

lookup ingress-conformance-0-visibility-cpjkeznv.serving-tests.svc.cluster.local on 10.96.0.10:53: no such host

It seems like fixing this test will require some additional DNS configuration or creating an Istio ServiceEntry for the private hostname.

@dprotaso
Copy link
Contributor

dprotaso commented Apr 7, 2021

Note: I've disabled conformance tests in mesh mode in #583

We'll want to re-enable those once this is fixed

@github-actions
Copy link

github-actions bot commented Jul 7, 2021

This issue is stale because it has been open for 90 days with no
activity. It will automatically close after 30 more days of
inactivity. Reopen the issue with /reopen. Mark the issue as
fresh by adding the comment /remove-lifecycle stale.

@github-actions github-actions bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jul 7, 2021
@github-actions github-actions bot closed this as completed Aug 7, 2021
@nak3 nak3 reopened this Jul 6, 2023
@nak3
Copy link
Contributor

nak3 commented Jul 6, 2023

Just note, we still haven't enabled conformance test on mesh mode.
However, ambient can pass all conformance test.

@github-actions github-actions bot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jul 7, 2023
@github-actions
Copy link

github-actions bot commented Oct 6, 2023

This issue is stale because it has been open for 90 days with no
activity. It will automatically close after 30 more days of
inactivity. Reopen the issue with /reopen. Mark the issue as
fresh by adding the comment /remove-lifecycle stale.

@github-actions github-actions bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Oct 6, 2023
@github-actions github-actions bot closed this as completed Nov 5, 2023
@dprotaso
Copy link
Contributor

dprotaso commented Nov 5, 2023

/reopen
/lifecycle frozen

@knative-prow knative-prow bot reopened this Nov 5, 2023
Copy link

knative-prow bot commented Nov 5, 2023

@dprotaso: Reopened this issue.

In response to this:

/reopen
/lifecycle frozen

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.

@knative-prow knative-prow bot added lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Nov 5, 2023
@dprotaso
Copy link
Contributor

/unassign @JRBANCEL

@dprotaso dprotaso added this to the v1.13.0 milestone Nov 17, 2023
@skonto
Copy link
Contributor

skonto commented Apr 10, 2024

@ReToCode @dprotaso is this still valid given that the mesh option was removed in #915? Am I missing something here?

@dprotaso
Copy link
Contributor

I think the repro steps are not the same but mesh is still pretty flakey with serving tests

https://testgrid.k8s.io/r/knative-own-testgrid/serving#istio-latest-mesh

We should investigate

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness.
Projects
None yet
Development

No branches or pull requests

5 participants