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

TestXdsProxyStatus failures #37169

Closed
howardjohn opened this issue Feb 4, 2022 · 6 comments · Fixed by #40274
Closed

TestXdsProxyStatus failures #37169

howardjohn opened this issue Feb 4, 2022 · 6 comments · Fixed by #40274

Comments

@howardjohn
Copy link
Member

https://prow.istio.io/view/gs/istio-prow/pr-logs/pull/istio_istio/37162/integ-pilot-istiodremote_istio/1489422911918837760

Here

os.Setenv("ISTIOCTL_XDS_ADDRESS", istiodAddress.String())
we set the Istiod Address

This is a pod IP
Istiod autoscales up to 2 pods, because the istiodless code doesn't set the same config as in cluster (which has autoscaling disable)
We picked the wrong istiod in that code above, so we hit an istiod with 0 connections and fail

howardjohn added a commit to howardjohn/istio that referenced this issue Feb 4, 2022
Temporary workaround for istio#37169

Might want this long term anyways, to match other jobs
istio-testing pushed a commit that referenced this issue Feb 4, 2022
* Turn off autoscaling on externalistiod

Temporary workaround for #37169

Might want this long term anyways, to match other jobs

* fix
@frankbu
Copy link
Contributor

frankbu commented Feb 7, 2022

In the integration test environment, an external control plane's istiod is exposed as a loadbalancer-type service:


The framework should use the service IP if there is one, but the problem is that kind doesn't support LoadBalance out of the box, so we use the pod IP instead:
if !s.LoadBalancerSupported {

So, the problem is because the integration framework uses kind without metallb or some other loadbalancer support. We could conceivably setup the cluster using metallb, like we suggest users do for testing with kind, or we could set up a gateway, like we do in the external control plane docs.

I'm inclined to think that since this is just for integration testing, and there's no real benefit to scaling up istiod for these tests, why not just fix this by disabling autoscaling of istiod, that is, I think the temporary workaround for this issue, #37170, is the permanent fix.

@howardjohn WDYT?

@howardjohn
Copy link
Member Author

I think for all of our tests we always deploy metallb. So I feel like we can disable scaling long term and use load balancer -- since that is what any real user would need anyways.

@frankbu
Copy link
Contributor

frankbu commented Feb 8, 2022

I wasn't aware that we always deploy metaldb in the integration test env. I ran the tests locally and confirmed that, in fact, s.LoadBalancerSupported is true, so I don't understand how this part of the issue description can be true:

we set the Istiod Address

This is a pod IP

The code uses the service IP for the istiodAddress if there is loadbalancer support.

Is the postsubmit configuration different, i.e., no metaldb deployment)?

@howardjohn Am I missing something here?

@frankbu
Copy link
Contributor

frankbu commented Feb 8, 2022

Opened new issue #37217.

This issue is fixed by #37170.

@frankbu frankbu closed this as completed Feb 8, 2022
@howardjohn howardjohn reopened this Jul 18, 2022
howardjohn added a commit to howardjohn/istio that referenced this issue Aug 10, 2022
This is failing recently since we made proxy disconnect from control
plane more often. This exposed that these tests fail if they happen to
run when not connected.

Fixes istio#37169
Fixes istio#40273
istio-testing pushed a commit that referenced this issue Aug 12, 2022
* tf: Fix Istioctl XDS flakes

This is failing recently since we made proxy disconnect from control
plane more often. This exposed that these tests fail if they happen to
run when not connected.

Fixes #37169
Fixes #40273

* fix build

* fmt
istio-testing pushed a commit to istio-testing/istio that referenced this issue Aug 15, 2022
This is failing recently since we made proxy disconnect from control
plane more often. This exposed that these tests fail if they happen to
run when not connected.

Fixes istio#37169
Fixes istio#40273
istio-testing added a commit that referenced this issue Aug 15, 2022
* tf: Fix Istioctl XDS flakes

This is failing recently since we made proxy disconnect from control
plane more often. This exposed that these tests fail if they happen to
run when not connected.

Fixes #37169
Fixes #40273

* fix build

* fmt

Co-authored-by: John Howard <howardjohn@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants