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

503s plagging the tests and will affect customers too #653

Closed
ldemailly opened this issue Sep 2, 2017 · 7 comments
Closed

503s plagging the tests and will affect customers too #653

ldemailly opened this issue Sep 2, 2017 · 7 comments
Assignees
Milestone

Comments

@ldemailly
Copy link
Contributor

@kyessenov says there is a known issue with ingress generating random 503s:

"
related to incoherent RDS/LDS I think
RDS/LDS might be racing
it's racing every second
start ingress, make lots of requests
you'll see 503s, very easy to replicate
"

clearly we can't ship something that would generate spurious errors every second

@ldemailly ldemailly added the bug label Sep 2, 2017
@ldemailly ldemailly added this to the Istio 0.2 milestone Sep 2, 2017
@ldemailly
Copy link
Contributor Author

ldemailly commented Sep 2, 2017

example of where it happens (but it's all over and apparently has been all over for a long time):

https://k8s-gubernator.appspot.com/build/istio-prow/pull/istio_istio/647/e2e-suite-no_rbac-no_auth/224/

W0902 21:55:39.766] 21:55:39 I httprunner.go:75> Starting http test for http://10.142.0.13:32697/productpage with 8 threads at 100.0 qps
W0902 21:55:53.114] 21:55:53 W http.go:533> Parsed non ok code 503 (HTTP/1.1 503)
W0902 21:55:59.120] 21:55:59 W http.go:533> Parsed non ok code 503 (HTTP/1.1 503)
W0902 21:55:59.349] 21:55:59 W http.go:533> Parsed non ok code 503 (HTTP/1.1 503)
W0902 21:56:03.260] 21:56:03 W http.go:533> Parsed non ok code 503 (HTTP/1.1 503)
W0902 21:56:09.055] 21:56:09 W http.go:533> Parsed non ok code 503 (HTTP/1.1 503)
W0902 21:56:10.916] 21:56:10 W http.go:533> Parsed non ok code 503 (HTTP/1.1 503)
W0902 21:56:17.879] 21:56:17 W http.go:533> Parsed non ok code 503 (HTTP/1.1 503)
W0902 21:56:18.484] 21:56:18 W http.go:533> Parsed non ok code 503 (HTTP/1.1 503)
W0902 21:56:20.400] 21:56:20 W http.go:533> Parsed non ok code 503 (HTTP/1.1 503)
W0902 21:56:21.173] 21:56:21 W http.go:533> Parsed non ok code 503 (HTTP/1.1 503)
W0902 21:56:24.506] 21:56:24 W http.go:533> Parsed non ok code 503 (HTTP/1.1 503)
W0902 21:56:27.667] 21:56:27 W http.go:533> Parsed non ok code 503 (HTTP/1.1 503)
W0902 21:56:28.614] 21:56:28 W http.go:533> Parsed non ok code 503 (HTTP/1.1 503)
W0902 21:56:29.355] 21:56:29 W http.go:533> Parsed non ok code 503 (HTTP/1.1 503)
W0902 21:56:35.548] 21:56:35 W http.go:533> Parsed non ok code 503 (HTTP/1.1 503)
W0902 21:56:35.968] 21:56:35 W http.go:533> Parsed non ok code 503 (HTTP/1.1 503)
W0902 21:56:36.440] 21:56:36 W http.go:533> Parsed non ok code 503 (HTTP/1.1 503)
W0902 21:56:41.148] 21:56:41 W http.go:533> Parsed non ok code 503 (HTTP/1.1 503)
W0902 21:56:42.630] I0902 21:56:42.627691     891 mixer_test.go:326] Summary: 2512 reqs (2494 200s, 0 400s)
I0902 21:56:42.730] Ended after 1m0.173911765s : 2512 calls. qps=41.746
I0902 21:56:42.731] Aggregated Function Time : count 2512 avg 0.1913638 +/- 0.1068 min 0.074864405 max 5.164101853 sum 480.705869
I0902 21:56:42.731] # range, mid point, percentile, count
I0902 21:56:42.731] >= 0.07 < 0.08 , 0.075 , 0.16, 4
I0902 21:56:42.731] >= 0.08 < 0.09 , 0.085 , 0.40, 6
I0902 21:56:42.731] >= 0.09 < 0.1 , 0.095 , 0.56, 4
I0902 21:56:42.731] >= 0.1 < 0.12 , 0.11 , 1.19, 16
I0902 21:56:42.731] >= 0.12 < 0.14 , 0.13 , 8.56, 185
I0902 21:56:42.731] >= 0.14 < 0.16 , 0.15 , 23.49, 375
I0902 21:56:42.732] >= 0.16 < 0.18 , 0.17 , 43.55, 504
I0902 21:56:42.732] >= 0.18 < 0.2 , 0.19 , 64.61, 529
I0902 21:56:42.732] >= 0.2 < 0.25 , 0.225 , 92.24, 694
I0902 21:56:42.732] >= 0.25 < 0.3 , 0.275 , 98.85, 166
I0902 21:56:42.732] >= 0.3 < 0.35 , 0.325 , 99.80, 24
I0902 21:56:42.732] >= 0.35 < 0.4 , 0.375 , 99.96, 4
I0902 21:56:42.732] >= 5 < 7.5 , 6.25 , 100.00, 1
I0902 21:56:42.732] # target 90% 0.245951
I0902 21:56:42.732] Code 200 : 2494
I0902 21:56:42.732] Code 503 : 18

so a typical simple test seems to get 0.7% of errors (after warmup etc)

and some time it seems 100% 503s for a long time (maybe a different warm up/bring up problem:)

W0902 21:58:22.869] I0902 21:58:22.868328    1598 demo_test.go:258] Waiting for rules to propagate...
W0902 21:58:53.113] I0902 21:58:53.112105    1598 demo_test.go:148] Get from page: 503
W0902 21:58:53.113] E0902 21:58:53.112144    1598 demo_test.go:159] Couldn't get to the bookinfo product page, trying again in 5 second
W0902 21:58:58.252] I0902 21:58:58.251599    1598 demo_test.go:148] Get from page: 503
W0902 21:58:58.253] E0902 21:58:58.251637    1598 demo_test.go:159] Couldn't get to the bookinfo product page, trying again in 10 second
W0902 21:59:08.394] I0902 21:59:08.392467    1598 demo_test.go:148] Get from page: 503
W0902 21:59:08.395] E0902 21:59:08.392503    1598 demo_test.go:159] Couldn't get to the bookinfo product page, trying again in 15 second
W0902 21:59:23.534] I0902 21:59:23.532957    1598 demo_test.go:148] Get from page: 503
W0902 21:59:23.534] E0902 21:59:23.532983    1598 demo_test.go:159] Couldn't get to the bookinfo product page, trying again in 20 second
W0902 21:59:43.675] I0902 21:59:43.674150    1598 demo_test.go:148] Get from page: 503
W0902 21:59:43.675] E0902 21:59:43.674185    1598 demo_test.go:159] Couldn't get to the bookinfo product page, trying again in 25 second
W0902 22:00:08.817] I0902 22:00:08.815778    1598 demo_test.go:148] Get from page: 503
W0902 22:00:08.817] E0902 22:00:08.815824    1598 framework.go:199] Failed to complete Init. Error unable to set default route

@ldemailly
Copy link
Contributor Author

ldemailly commented Sep 4, 2017

I think the spurious small % and the block of 503s are different problems but both are critical

example of broken block:
https://k8s-gubernator.appspot.com/build/istio-prow/pull/istio_pilot/1172/pilot-e2e-smoketest/269/
(saved to https://gist.github.com/ldemailly/3389eeb217ad6433702a30b7638bcb92 in case the build log disappears)

@mandarjog
Copy link
Contributor

W0904 22:50:01.009] I0904 22:50:01.008143    1057 kubeUtils.go:198] Istio ingress: 10.142.0.3:32605

I0904 22:50:41.116] === RUN   TestGlobalCheckAndReport
W0904 22:50:41.216] I0904 22:50:41.106686    1057 framework.go:147] Initialization complete
W0904 22:50:41.216] I0904 22:50:41.106718    1057 framework.go:202] Running test
W0904 22:50:41.459] I0904 22:50:41.458584    1057 mixer_test.go:483] Get from http://10.142.0.3:32605/productpage: 503 Service Unavailable (503)
W0904 22:50:44.534] I0904 22:50:44.533302    1057 mixer_test.go:483] Get from http://10.142.0.3:32605/productpage: 503 Service Unavailable (503)
W0904 22:50:47.647] I0904 22:50:47.646442    1057 mixer_test.go:483] Get from http://10.142.0.3:32605/productpage: 503 Service Unavailable (503)
W0904 22:50:50.724] I0904 22:50:50.723032    1057 mixer_test.go:483] Get from http://10.142.0.3:32605/productpage: 503 Service Unavailable (503)
W0904 22:50:53.799] I0904 22:50:53.798334    1057 mixer_test.go:483] Get from http://10.142.0.3:32605/productpage: 503 Service Unavailable (503)
W0904 22:50:56.871] I0904 22:50:56.870806    1057 mixer_test.go:483] Get from http://10.142.0.3:32605/productpage: 503 Service Unavailable (503)
W0904 22:50:59.965] I0904 22:50:59.964719    1057 mixer_test.go:483] Get from http://10.142.0.3:32605/productpage: 503 Service Unavailable (503)
W0904 22:51:03.041] I0904 22:51:03.040306    1057 mixer_test.go:483] Get from http://10.142.0.3:32605/productpage: 503 Service Unavailable (503)
W0904 22:51:06.121] I0904 22:51:06.119853    1057 mixer_test.go:483] Get from http://10.142.0.3:32605/productpage: 503 Service Unavailable (503)
W0904 22:51:09.199] I0904 22:51:09.197200    1057 mixer_test.go:483] Get from http://10.142.0.3:32605/productpage: 503 Service Unavailable (503)
W0904 22:51:12.270] I0904 22:51:12.268739    1057 mixer_test.go:483] Get from http://10.142.0.3:32605/productpage: 503 Service Unavailable (503)

@sdake
Copy link
Member

sdake commented Sep 8, 2017

@ldemailly @gnirodi

I've spent ~40 hours bringing up Istio without reproducible success. I did have the bookinfo sample operational for a short period, however, over the last couple of weeks I've become completely blocked. Here is my debug information in case someone finds it useful. I will continue debugging - any advice would be of help to fix the problem.

My environment:

Dual Xeon 256g ram AIO deployment
Centos 7.3 minimal installation with full yum update
go 1.8.3 from Red Hat Koji
firewalld disabled
selinux disabled
self-built istioctl from 3b31d818a1804e8d85e3396ed0f844c0893e2469
Kubernetes 1.7.5 from upstream RPMs
run as user "sdake" (not root)

I run the following initialization script:

sudo sed -i 's/10.96.0.10/10.3.3.10/g' /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
sudo systemctl daemon-reload
sudo systemctl stop kubelet
sudo systemctl enable kubelet
sudo systemctl start kubelet
sudo kubeadm init --pod-network-cidr=10.1.0.0/16 --service-cidr=10.3.3.0/24
mkdir -p $HOME/.kube
sudo -H cp /etc/kubernetes/admin.conf $HOME/.kube/config
sudo -H chown $(id -u):$(id -g) $HOME/.kube/config
kubectl taint nodes --all=true  node-role.kubernetes.io/master:NoSchedule-
kubectl apply -f calico.yaml

# Deploy Istio
kubectl apply -f install/kubernetes/istio-rbac-beta.yaml
kubectl apply -f install/kubernetes/istio.yaml
kubectl apply -f install/kubernetes/addons/prometheus.yaml
kubectl apply -f install/kubernetes/addons/grafana.yaml
kubectl apply -f install/kubernetes/addons/servicegraph.yaml
kubectl apply -f install/kubernetes/addons/zipkin.yaml
echo "Horizontal or Vertical?"`

NB: I have run these commands manually verifying each operation completes before continuing further.

My calico.yaml has been modified to match the above kubeadm network operations.
https://paste.fedoraproject.org/paste/lWxMwGV95S1417IiXeg1IQ/

Everything comes up and enters the RUNNING state. CNI+httpbin has been verified to work by:

[sdake@falkor-01 istio]$ kubectl apply -f samples/apps/httpbin/httpbin.yaml
service "httpbin" created
deployment "httpbin" created`
[sdake@falkor-01 istio]$ kubectl apply -f samples/apps/sleep/sleep.yaml 
service "sleep" created
deployment "sleep" created
[sdake@falkor-01 istio]$ kubectl get pods | grep sleep
sleep-3432132412-qfk7b            1/1       Running   0          21s
[sdake@falkor-01 istio]$ kubectl exec -it sleep-3432132412-qfk7b bash
httpbin-3158034148-x5wj7          1/1       Running   0          3m        192.168.89.128   falkor-01
[sdake@falkor-01 ~]$ kubectl get pod -o wide | grep httpbin
[sdake@falkor-01 istio]$ kubectl exec -it sleep-3432132412-qfk7b bash
root@sleep-3432132412-qfk7b:/# curl httpbin:8000/headers
{
  "headers": {
    "Accept": "*/*", 
    "Host": "httpbin:8000", 
    "User-Agent": "curl/7.35.0"
  }
}

root@httpbin-3158034148-x5wj7:/# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 22:09 ?        00:00:00 /usr/bin/python3 /usr/local/bin/gunicorn --bind=0.0.0.0:8000 httpbin:app
root        10     1  0 22:09 ?        00:00:00 /usr/bin/python3 /usr/local/bin/gunicorn --bind=0.0.0.0:8000 httpbin:app
root        12     0  0 22:25 ?        00:00:00 bash
root        27    12  0 22:25 ?        00:00:00 ps -ef

I took a look at the IP tables rules:

# Generated by iptables-save v1.4.21 on Thu Sep 7 12:52:00 2017
*mangle
:PREROUTING ACCEPT [5456:983039]
:INPUT ACCEPT [5456:983039]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [49173:4025823]
:POSTROUTING ACCEPT [49173:4025823]
COMMIT
# Completed on Thu Sep 7 12:52:00 2017
# Generated by iptables-save v1.4.21 on Thu Sep 7 12:52:00 2017
*raw
:PREROUTING ACCEPT [5456:983039]
:OUTPUT ACCEPT [49173:4025823]
COMMIT
# Completed on Thu Sep 7 12:52:00 2017
# Generated by iptables-save v1.4.21 on Thu Sep 7 12:52:00 2017
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [6:360]
:OUTPUT ACCEPT [472:38652]
:POSTROUTING ACCEPT [472:38652]
:ISTIO_OUTPUT - [0:0]
:ISTIO_REDIRECT - [0:0]
-A PREROUTING -m comment --comment "istio/install-istio-prerouting" -j ISTIO_REDIRECT
-A OUTPUT -p tcp -m comment --comment "istio/install-istio-output" -j ISTIO_OUTPUT
-A ISTIO_OUTPUT ! -d 127.0.0.1/32 -o lo -m comment --comment "istio/redirect-implicit-loopback" -j ISTIO_REDIRECT
-A ISTIO_OUTPUT -m owner --uid-owner 0 -m comment --comment "istio/bypass-envoy" -j RETURN
-A ISTIO_OUTPUT -d 127.0.0.1/32 -m comment --comment "istio/bypass-explicit-loopback" -j RETURN
-A ISTIO_OUTPUT -m comment --comment "istio/redirect-default-outbound" -j ISTIO_REDIRECT
-A ISTIO_REDIRECT -p tcp -m comment --comment "istio/redirect-to-envoy-port" -j REDIRECT --to-ports 15001
COMMIT

I also took a look at the stats (port 15000/clusters) and all connections from istio-ingress to httpbin had failed connections. Attempting a curl from the istio-ingress container to the pilot port (9080) of the POD ip of httpbin results in ECONNREFUSED even though inside the sample pods 9080 has a wildcard bind (0.0.0.0). Inside the pod, a connection to IP:9080 fails, although 127.0.0.1 works properly. Inside the envoy container (via docker exec) same story.

I realize there is alot of information in this bug report and perhaps it could be better presented.
If you have questions feel free to ask and i'll supply additional information. Hopefully this debugging is helpful for someone. If anyone in this issue has any ideas how to further debug, I'd be happy to try out any suggestions. Since this is 100% reproducible, solving this particular problem may result in some forward progress on this issue tracker in general.

My suspicion is the iptables rules are incorrect, although my iptables-foo lacks enough depth to know what the correct iptables should look like in the httpbin pod that has been injected. I further suspect there is some form of race condition related to the iptables setup.

I have a friend who has Istio semi-working with a helm based installation on CentOS with similar gear. He is using flannel (not calico) so I'm going to try a different CNI next to determine if possibly calico is the cause of this problem.

@ldemailly
Copy link
Contributor Author

@sdake thanks for the detailed report,
this issue though is specifically about 503 errors we observed mid development on our shared testing cluster, I'm a bit curious about the details of your self built istio, can you put that in
https://github.com/istio/issues/issues/new (including version informations/how exactly you built from source ?)
I don't see any istioctl kube-inject in your details above, yet you have the iptables ?
also can you try running our e2e tests in your test cluster (start with pilot's test) ?

Now update about our issue for everyone else: the fix of namespace listen (#696) should cover most of the 503/weirdness but the sporadic/race based one maybe not (and those may be harder to catch now)

@sdake
Copy link
Member

sdake commented Sep 8, 2017

@ldemailly continued in istio/old_issues_repo#56.

@xiaolanz xiaolanz removed the oncall label Sep 12, 2017
@ldemailly
Copy link
Contributor Author

this was fixed when the ingress stopped receiving all namespaces

howardjohn added a commit to howardjohn/istio that referenced this issue Jan 12, 2020
0x01001011 pushed a commit to thedemodrive/istio that referenced this issue Jul 16, 2020
The Guidelines is going to be a living document. This PR puts some basics in place.
luksa pushed a commit to luksa/istio that referenced this issue Dec 21, 2022
* Shorten exported resource name

* Fix import createResourceName + unit tests

* Rearrange unit tests + renaming function

* Fix minor changes

* Error message RFC 1123
luksa pushed a commit to luksa/istio that referenced this issue Apr 11, 2024
…stio#699)

* [federation] Introduces federation deployment (istio#585)

* [federation] Initial federation implementation

* MAISTRA-2194 Add server/client code for Federation Service Discovery v1

* MAISTRA-2195 Implement /watch endpoint

* MAISTRA-2293 add CRD and controller for federating meshes

* MAISTRA-2294 create CRD for federation ServiceExport (istio#324)

* MAISTRA-2294 update example VirtualService resources for ratings and mongodb (istio#333)

* [federation] MAISTRA-2295 create CRD for federation ServiceImport (istio#336)

Signed-off-by: rcernich <rcernich@redhat.com>

* [misc] Use objects and clients from maistra/api repo

- Remove local objects and clients
- Update Makefile

* [federation] MAISTRA-2309 create CRD for FederationStatus (istio#348)

Signed-off-by: rcernich <rcernich@redhat.com>

* [federation] Federation fixes and improvements

MAISTRA-2423 update federation api to v1

Signed-off-by: rcernich <rcernich@redhat.com>

MAISTRA-2424 minor updates to federation api

Signed-off-by: rcernich <rcernich@redhat.com>

MAISTRA-2427 configure locality info on imported services

Signed-off-by: rcernich <rcernich@redhat.com>

Cherry-pick multi-root support (istio#387)

* Update go-control-plane to v0.9.9

* Support multiple roots

Squashed commit, contains:
- MAISTRA-2325 Distribute trust bundles over SDS
- MAISTRA-2390 Push trust bundle updates through xDS (istio#357)

MAISTRA-2425 move spec.security.certificateChain to ConfigMap reference; add ability to specify ports for service and discovery (istio#392)

Signed-off-by: rcernich <rcernich@redhat.com>

MAISTRA-2426 move FederationStatus into MeshFederation (istio#393)

Signed-off-by: rcernich <rcernich@redhat.com>

MAISTRA-2513 federation API refinements

Signed-off-by: rcernich <rcernich@redhat.com>

[federation] MAISTRA-2237 Encrypt service discovery traffic (istio#411)

MAISTRA-2610 Prefix federation discovery endpoints with /v1/ (istio#422)

MAISTRA-2297 Support updates of federation resources (istio#417)

MAISTRA-2375: Do not create automatic routes for Federation Gateways

Remove a redundant call

`setHostname()` is already being called within `NameForService()`

see
https://github.com/maistra/istio/blob/21ee900cf8825711f70d88dc97afcf6862ed2626/pkg/servicemesh/federation/common/namemapping.go
lines 83, 120, 129

Remove techPreview.meshConfig from PoC example

It's set by default now.

MAISTRA-2611 Fix deletion of service exports to federated mesh (istio#421)

Fix test

MAISTRA-2658 Ensure ImportedServiceSet.status.importedServices is never nil (istio#437)

* MAISTRA-2658 Ensure ImportedServiceSet.status.importedServices is never nil

* Fix test

MAISTRA-2682 Fix watch mechanism in federation (istio#439)

Previously, no events were read from the watch response, because the read started with an endless loop that waited for data to be available in the decoder's buffer. This never happened, because the buffer is only written to when you call decoder.Decode(); this function was never called because the code waited for the buffer to have data.

MAISTRA-2683 Properly close incoming watch connections when shutting down (istio#440)

Log actual error returned by pollServices() (istio#441)

Previously, instead of the actual error, only the following error message was logged: "expected condition not met".

MAISTRA-2439: Prevent federation from exporting services that are not visible to the federation gateway (istio#432)

By taking into consideration the service annotation
`networking.istio.io/exportTo`.

This annotation restricts where this service is visible: https://istio.io/latest/docs/reference/config/annotations/

If a service is not reachable from the federation gateway namespace due
to this annotation, it should not be exported.

MAISTRA-2617: Do not watch all namespaces in Extensions controller (istio#425)

When using MemberRoll, we should rely on it to provide the list
of namespaces to watch. If not using it, defaults to command line
arguments.

This fixes an istiod startup error as seen in the logs:
```
github.com/maistra/xns-informer/pkg/informers/informer.go:204: Failed to watch *v1.ServiceMeshExtension: failed to list *v1.ServiceMeshExtension: servicemeshextensions.maistra.io is forbidden: User "system:serviceaccount:i1:istiod-service-account-basic" cannot list resource "servicemeshextensions" in API group "maistra.io" at the cluster scope
```

* Remove package export and extensions

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Fix creating discovery.Controller

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Fix calling nil ResourceManager

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Remove panicing from AppendNetworkGatewayHandler

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* [misc] OSSM-774 Fix flaky TestStatusManager (istio#456)

This adds a little sleep to our unit tests for the StatusManager,
because without it, we're running into the issue that we're updating
a ServiceMeshPeer's status very quickly, and in some cases it might be
that the last change has not been propagated when we're generating
the patch for the next status change, which can lead to failures.

This can happen in the real world, but you would need to change a
ServiceMeshPeer's status within a few milliseconds, I doubt that it
affects users. It would also be fixed with the next status update.
For those reasons, I'm only fixing it in the test, with a Sleep()
call.

* Refactor manager_test

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* OSSM-1150 Fix flaky TestStatusManager unit test (istio#478)

Co-authored-by: Marko Lukša <marko.luksa@gmail.com>

* OSSM-1252 Fix federation status updates (istio#512)

* Copy federation privileges from base to istio-discovery

* Remove unnecessary ServiceMeshExtensions CRD

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Add model.NetworkGatewaysHandler to federation controller to implement AppendNetworkGatewayHandler

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* [federation] MAISTRA-2640 Add federation integration test (istio#447)

* Fix building federation test

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Add package gogo from maistra-2.2 to temporarily fix TbdsGenerator

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Disable configuring remote cluster in federation deployment

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* [federation] OSSM-1128 Fix federation (istio#480)

* Fix SecretCacheClient

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Send initial XDS request for trust bundle from proxy

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Disable using EndpointSlices to fix error on getting federation-egress endpoints

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Remove unused serviceMeshExtensionController

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Fix lint errors

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Update maistra CRDs

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* fedration_cp_version_update (istio#521)

* OSSM-1529 Improve federation example script (istio#522)

* OSSM-1529 Improve federation example install.sh

Previously, the script would fall back to using nodeports when the load balancer IP wasn't set. This meant that if the provision of the load balancer took too long, the SMCPs would be misconfigured and you had to run the install script again.

With this change, the script now waits for the load balancer IP to appear. It never falls back to using node ports, because they never really worked (the nodes' hostnames typically aren't FQDN and the node ports are typically protected by firewalls).

If the user wants to expose the federation ingresses in a different way, they can now set the environment variables MESH1_ADDRESS, MESH1_DISCOVERY_PORT, and MESH2_SERVICE_PORT (likewise for MESH2) and run the script.

* Update Federation example README

* Better "Waiting for load balancer" message

* OSSM-1211 Fix federation locality failover issues (istio#561)

Signed-off-by: Yuanlin <yuanlin.xu@redhat.com>

Signed-off-by: rcernich <rcernich@redhat.com>
Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>
Signed-off-by: Yuanlin <yuanlin.xu@redhat.com>
Co-authored-by: Daniel Grimm <dgrimm@redhat.com>
Co-authored-by: Rob Cernich <rcernich@redhat.com>
Co-authored-by: Jonh Wendell <jonh.wendell@redhat.com>
Co-authored-by: maistra-bot <57098434+maistra-bot@users.noreply.github.com>
Co-authored-by: Marko Lukša <marko.luksa@gmail.com>
Co-authored-by: Praneeth Bajjuri <pbajjuri@redhat.com>
Co-authored-by: Yuanlin Xu <xuyuanlin_00@hotmail.com>

* fix: removes deprecated gogo protobuf conversion

* fix: goimport format

* fix(lint): removes unused funcs

* fix(lint): removes deprecated io/ioutil

* fix(lint): disables staticcheck for federation tests

it requires at least two clusters to make sense

* fix(lint): use anypb.UnmarshalTo instead of ptypes

* fix: no need to exclude grpcgen_test.go

it seems to be fixed in v1.39

see: grpc/grpc-go#4476

* chore(backoff): aligns backoff dependency with v4 used by upstream

* chore: reverts removed blank line - irrelevant for merge

* chore(revive): adds explanation why json:inline is skipped from linting

* OSSM-1962: Use EndpointSlices instead of Endpoints in federation controller (istio#614)

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* OSSM-2049: Fix handling ServiceAccounts in federation controller (istio#627)

* Fix collecting empty or repeated ServiceAccounts in federation controller

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Collect ServiceAccounts in sorted order

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* OSSM-1093 Shorten exported resource name (istio#653)

* Shorten exported resource name

* Fix import createResourceName + unit tests

* Rearrange unit tests + renaming function

* Gen and lint

* Rearrange unit tests + renaming function

Gen and lint

* Fix minor changes

* Error message RFC 1123

* Reorganize structs in TestStatusManager

Instead of having three arrays (events, expectedStatuses, and assertions), we now only have a single array, where each entry is a triplet containing the event, the expected status and the assertion. This allows you to see the event and its expected effects together and not have to scroll up and down, matching the indexes of the three arrays.

* OSSM-2193 Fix flaky TestStatusManager

See comment in https://issues.redhat.com/browse/OSSM-2193 to understand why this change fixes the test.

* fix: runs make gen

* chore: explains why staticcheck linter is disabled for federation_test

* OSSM-728 Configuration scripts for Federation on Z and P, and bare metal (istio#670)

* add config example scripts for IBM Systems Z and P

* update multi-arch bookinfo deployment README, remove src

* Update README.md

* these are provided in the IBM repo

* so README.md passes mdlinter

* so README.md passes mdlinter

* so README.md passes mdlinter

* Update README.md

* Move federation examples to samples/ directory

* Rename template YAMLs to .yaml.template

This makes the linter happy

Co-authored-by: cfillekes <cfilleke@redhat.com>
Co-authored-by: Cheryl Fillekes <cfillekes@ibm.com>

* chore: removes obsolute TODO

* chore: simplifies bool return expression

* chore: removes redundant kubeClient check

if initialization fails this func will not be reached anyway

* chore(pkg): moves kube ctrl under servicemesh pkg folder

* OSSM-2338: Remove env ISTIO_META_ROUTER_MODE from federation test

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* OSSM-2338: Remove "routerMode: sni-dnat" from federation samples

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* fix: adds operator.go customizations to kube.go

clearly with cherry-pick we lost information about the file rename and thus
the changes we made specificually for testing federation got lost

* fix(test/operator): checks if east-west gw needs to be deployed

* fix(federation): uses Unwrap to get instance of Federation registry

* fix(tests): sets istiod-less remote flag to false

that was the behaviour for maistra-2.3 and we need istiod to be present in order to have federation working

* chore: gets registry just before it is needed

* chore: explains why istiodlessremotes is needed to be set to false

* chore: removes redundant import aliases

* chore: removes name collisions

* chore: removes redundant type conversion

* fix: disables staticcheck linter for cluster req tests.

* fix(tests): reverts timeout to original (but in minutes)

* fix(tests): removes extra logging

* chore: removes unnecessary logging

* fix: uses existing CRD file references in charts

* chore: removes multicluster label

* chore: uses built-in namespace.NewOrFail instead of our impl

* chore: introduces defaultTimeout const for federation tests

* fix(lint): fixes go imports

* fix(lint): removes unused variable

* fix: naively wait 5s hoping that kind network will show up

Signed-off-by: rcernich <rcernich@redhat.com>
Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>
Signed-off-by: Yuanlin <yuanlin.xu@redhat.com>
Co-authored-by: Jacek Ewertowski <jewertow@redhat.com>
Co-authored-by: Daniel Grimm <dgrimm@redhat.com>
Co-authored-by: Rob Cernich <rcernich@redhat.com>
Co-authored-by: Jonh Wendell <jonh.wendell@redhat.com>
Co-authored-by: maistra-bot <57098434+maistra-bot@users.noreply.github.com>
Co-authored-by: Marko Lukša <marko.luksa@gmail.com>
Co-authored-by: Praneeth Bajjuri <pbajjuri@redhat.com>
Co-authored-by: Yuanlin Xu <xuyuanlin_00@hotmail.com>
Co-authored-by: bmangoen <bmangoen@redhat.com>
Co-authored-by: cfillekes <cfilleke@redhat.com>
Co-authored-by: Cheryl Fillekes <cfillekes@ibm.com>

OSSM-2376: Move kube controller to the federation package (istio#718)

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

OSSM-2376: Don't start federation controllers until informers have synced (istio#717) (istio#720)

* OSSM-2376: Don't start federation-discovery-controller until kube informer has synced

Federation discovery controller fetches config map with remote CA root
cert, so if the controller started before the informer has synced, it
would fail to fetch the config map.

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Store ConfigMap informer in a field of the discovery.Controller

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Refactor ResourceManager and don't start federation controller until informers has synced

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Simplify Start and HasSynced functions in federation controllers

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Move kube controller to the federation package

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

Federation example fixes (istio#758)

* Use default version in federation example SMCPs

* Fix paths in federation example

OSSM-3599 Federation egress-gateway gets wrong network gateway endpoints (istio#775)

* OSSM-3599 Federation egress-gateway gets wrong update of network gateway endpoints

* Deprecate GatewayEndpoints on server side

* Remove resyncNetworkGateways in unit tests

* Fix lint

* Deprecate NetworkGatewayEndpoints and fix tests

Refactor federation tests (istio#841)

* Refactor federation tests

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Add more test cases

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

---------

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>
dgn added a commit to dgn/istio that referenced this issue Jun 13, 2024
…stio#844)

* [federation] Introduces federation deployment (istio#585)

* [federation] Initial federation implementation

* MAISTRA-2194 Add server/client code for Federation Service Discovery v1

* MAISTRA-2195 Implement /watch endpoint

* MAISTRA-2293 add CRD and controller for federating meshes

* MAISTRA-2294 create CRD for federation ServiceExport (istio#324)

* MAISTRA-2294 update example VirtualService resources for ratings and mongodb (istio#333)

* [federation] MAISTRA-2295 create CRD for federation ServiceImport (istio#336)

Signed-off-by: rcernich <rcernich@redhat.com>

* [misc] Use objects and clients from maistra/api repo

- Remove local objects and clients
- Update Makefile

* [federation] MAISTRA-2309 create CRD for FederationStatus (istio#348)

Signed-off-by: rcernich <rcernich@redhat.com>

* [federation] Federation fixes and improvements

MAISTRA-2423 update federation api to v1

Signed-off-by: rcernich <rcernich@redhat.com>

MAISTRA-2424 minor updates to federation api

Signed-off-by: rcernich <rcernich@redhat.com>

MAISTRA-2427 configure locality info on imported services

Signed-off-by: rcernich <rcernich@redhat.com>

Cherry-pick multi-root support (istio#387)

* Update go-control-plane to v0.9.9

* Support multiple roots

Squashed commit, contains:
- MAISTRA-2325 Distribute trust bundles over SDS
- MAISTRA-2390 Push trust bundle updates through xDS (istio#357)

MAISTRA-2425 move spec.security.certificateChain to ConfigMap reference; add ability to specify ports for service and discovery (istio#392)

Signed-off-by: rcernich <rcernich@redhat.com>

MAISTRA-2426 move FederationStatus into MeshFederation (istio#393)

Signed-off-by: rcernich <rcernich@redhat.com>

MAISTRA-2513 federation API refinements

Signed-off-by: rcernich <rcernich@redhat.com>

[federation] MAISTRA-2237 Encrypt service discovery traffic (istio#411)

MAISTRA-2610 Prefix federation discovery endpoints with /v1/ (istio#422)

MAISTRA-2297 Support updates of federation resources (istio#417)

MAISTRA-2375: Do not create automatic routes for Federation Gateways

Remove a redundant call

`setHostname()` is already being called within `NameForService()`

see
https://github.com/maistra/istio/blob/21ee900cf8825711f70d88dc97afcf6862ed2626/pkg/servicemesh/federation/common/namemapping.go
lines 83, 120, 129

Remove techPreview.meshConfig from PoC example

It's set by default now.

MAISTRA-2611 Fix deletion of service exports to federated mesh (istio#421)

Fix test

MAISTRA-2658 Ensure ImportedServiceSet.status.importedServices is never nil (istio#437)

* MAISTRA-2658 Ensure ImportedServiceSet.status.importedServices is never nil

* Fix test

MAISTRA-2682 Fix watch mechanism in federation (istio#439)

Previously, no events were read from the watch response, because the read started with an endless loop that waited for data to be available in the decoder's buffer. This never happened, because the buffer is only written to when you call decoder.Decode(); this function was never called because the code waited for the buffer to have data.

MAISTRA-2683 Properly close incoming watch connections when shutting down (istio#440)

Log actual error returned by pollServices() (istio#441)

Previously, instead of the actual error, only the following error message was logged: "expected condition not met".

MAISTRA-2439: Prevent federation from exporting services that are not visible to the federation gateway (istio#432)

By taking into consideration the service annotation
`networking.istio.io/exportTo`.

This annotation restricts where this service is visible: https://istio.io/latest/docs/reference/config/annotations/

If a service is not reachable from the federation gateway namespace due
to this annotation, it should not be exported.

MAISTRA-2617: Do not watch all namespaces in Extensions controller (istio#425)

When using MemberRoll, we should rely on it to provide the list
of namespaces to watch. If not using it, defaults to command line
arguments.

This fixes an istiod startup error as seen in the logs:
```
github.com/maistra/xns-informer/pkg/informers/informer.go:204: Failed to watch *v1.ServiceMeshExtension: failed to list *v1.ServiceMeshExtension: servicemeshextensions.maistra.io is forbidden: User "system:serviceaccount:i1:istiod-service-account-basic" cannot list resource "servicemeshextensions" in API group "maistra.io" at the cluster scope
```

* Remove package export and extensions

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Fix creating discovery.Controller

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Fix calling nil ResourceManager

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Remove panicing from AppendNetworkGatewayHandler

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* [misc] OSSM-774 Fix flaky TestStatusManager (istio#456)

This adds a little sleep to our unit tests for the StatusManager,
because without it, we're running into the issue that we're updating
a ServiceMeshPeer's status very quickly, and in some cases it might be
that the last change has not been propagated when we're generating
the patch for the next status change, which can lead to failures.

This can happen in the real world, but you would need to change a
ServiceMeshPeer's status within a few milliseconds, I doubt that it
affects users. It would also be fixed with the next status update.
For those reasons, I'm only fixing it in the test, with a Sleep()
call.

* Refactor manager_test

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* OSSM-1150 Fix flaky TestStatusManager unit test (istio#478)

Co-authored-by: Marko Lukša <marko.luksa@gmail.com>

* OSSM-1252 Fix federation status updates (istio#512)

* Copy federation privileges from base to istio-discovery

* Remove unnecessary ServiceMeshExtensions CRD

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Add model.NetworkGatewaysHandler to federation controller to implement AppendNetworkGatewayHandler

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* [federation] MAISTRA-2640 Add federation integration test (istio#447)

* Fix building federation test

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Add package gogo from maistra-2.2 to temporarily fix TbdsGenerator

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Disable configuring remote cluster in federation deployment

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* [federation] OSSM-1128 Fix federation (istio#480)

* Fix SecretCacheClient

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Send initial XDS request for trust bundle from proxy

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Disable using EndpointSlices to fix error on getting federation-egress endpoints

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Remove unused serviceMeshExtensionController

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Fix lint errors

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Update maistra CRDs

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* fedration_cp_version_update (istio#521)

* OSSM-1529 Improve federation example script (istio#522)

* OSSM-1529 Improve federation example install.sh

Previously, the script would fall back to using nodeports when the load balancer IP wasn't set. This meant that if the provision of the load balancer took too long, the SMCPs would be misconfigured and you had to run the install script again.

With this change, the script now waits for the load balancer IP to appear. It never falls back to using node ports, because they never really worked (the nodes' hostnames typically aren't FQDN and the node ports are typically protected by firewalls).

If the user wants to expose the federation ingresses in a different way, they can now set the environment variables MESH1_ADDRESS, MESH1_DISCOVERY_PORT, and MESH2_SERVICE_PORT (likewise for MESH2) and run the script.

* Update Federation example README

* Better "Waiting for load balancer" message

* OSSM-1211 Fix federation locality failover issues (istio#561)

Signed-off-by: Yuanlin <yuanlin.xu@redhat.com>

Signed-off-by: rcernich <rcernich@redhat.com>
Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>
Signed-off-by: Yuanlin <yuanlin.xu@redhat.com>
Co-authored-by: Daniel Grimm <dgrimm@redhat.com>
Co-authored-by: Rob Cernich <rcernich@redhat.com>
Co-authored-by: Jonh Wendell <jonh.wendell@redhat.com>
Co-authored-by: maistra-bot <57098434+maistra-bot@users.noreply.github.com>
Co-authored-by: Marko Lukša <marko.luksa@gmail.com>
Co-authored-by: Praneeth Bajjuri <pbajjuri@redhat.com>
Co-authored-by: Yuanlin Xu <xuyuanlin_00@hotmail.com>

* fix: removes deprecated gogo protobuf conversion

* fix: goimport format

* fix(lint): removes unused funcs

* fix(lint): removes deprecated io/ioutil

* fix(lint): disables staticcheck for federation tests

it requires at least two clusters to make sense

* fix(lint): use anypb.UnmarshalTo instead of ptypes

* fix: no need to exclude grpcgen_test.go

it seems to be fixed in v1.39

see: grpc/grpc-go#4476

* chore(backoff): aligns backoff dependency with v4 used by upstream

* chore: reverts removed blank line - irrelevant for merge

* chore(revive): adds explanation why json:inline is skipped from linting

* OSSM-1962: Use EndpointSlices instead of Endpoints in federation controller (istio#614)

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* OSSM-2049: Fix handling ServiceAccounts in federation controller (istio#627)

* Fix collecting empty or repeated ServiceAccounts in federation controller

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Collect ServiceAccounts in sorted order

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* OSSM-1093 Shorten exported resource name (istio#653)

* Shorten exported resource name

* Fix import createResourceName + unit tests

* Rearrange unit tests + renaming function

* Gen and lint

* Rearrange unit tests + renaming function

Gen and lint

* Fix minor changes

* Error message RFC 1123

* Reorganize structs in TestStatusManager

Instead of having three arrays (events, expectedStatuses, and assertions), we now only have a single array, where each entry is a triplet containing the event, the expected status and the assertion. This allows you to see the event and its expected effects together and not have to scroll up and down, matching the indexes of the three arrays.

* OSSM-2193 Fix flaky TestStatusManager

See comment in https://issues.redhat.com/browse/OSSM-2193 to understand why this change fixes the test.

* fix: runs make gen

* chore: explains why staticcheck linter is disabled for federation_test

* OSSM-728 Configuration scripts for Federation on Z and P, and bare metal (istio#670)

* add config example scripts for IBM Systems Z and P

* update multi-arch bookinfo deployment README, remove src

* Update README.md

* these are provided in the IBM repo

* so README.md passes mdlinter

* so README.md passes mdlinter

* so README.md passes mdlinter

* Update README.md

* Move federation examples to samples/ directory

* Rename template YAMLs to .yaml.template

This makes the linter happy

Co-authored-by: cfillekes <cfilleke@redhat.com>
Co-authored-by: Cheryl Fillekes <cfillekes@ibm.com>

* chore: removes obsolute TODO

* chore: simplifies bool return expression

* chore: removes redundant kubeClient check

if initialization fails this func will not be reached anyway

* chore(pkg): moves kube ctrl under servicemesh pkg folder

* OSSM-2338: Remove env ISTIO_META_ROUTER_MODE from federation test

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* OSSM-2338: Remove "routerMode: sni-dnat" from federation samples

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* fix: adds operator.go customizations to kube.go

clearly with cherry-pick we lost information about the file rename and thus
the changes we made specificually for testing federation got lost

* fix(test/operator): checks if east-west gw needs to be deployed

* fix(federation): uses Unwrap to get instance of Federation registry

* fix(tests): sets istiod-less remote flag to false

that was the behaviour for maistra-2.3 and we need istiod to be present in order to have federation working

* chore: gets registry just before it is needed

* chore: explains why istiodlessremotes is needed to be set to false

* chore: removes redundant import aliases

* chore: removes name collisions

* chore: removes redundant type conversion

* fix: disables staticcheck linter for cluster req tests.

* fix(tests): reverts timeout to original (but in minutes)

* fix(tests): removes extra logging

* chore: removes unnecessary logging

* fix: uses existing CRD file references in charts

* chore: removes multicluster label

* chore: uses built-in namespace.NewOrFail instead of our impl

* chore: introduces defaultTimeout const for federation tests

* fix(lint): fixes go imports

* fix(lint): removes unused variable

* fix: naively wait 5s hoping that kind network will show up

Signed-off-by: rcernich <rcernich@redhat.com>
Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>
Signed-off-by: Yuanlin <yuanlin.xu@redhat.com>
Co-authored-by: Jacek Ewertowski <jewertow@redhat.com>
Co-authored-by: Daniel Grimm <dgrimm@redhat.com>
Co-authored-by: Rob Cernich <rcernich@redhat.com>
Co-authored-by: Jonh Wendell <jonh.wendell@redhat.com>
Co-authored-by: maistra-bot <57098434+maistra-bot@users.noreply.github.com>
Co-authored-by: Marko Lukša <marko.luksa@gmail.com>
Co-authored-by: Praneeth Bajjuri <pbajjuri@redhat.com>
Co-authored-by: Yuanlin Xu <xuyuanlin_00@hotmail.com>
Co-authored-by: bmangoen <bmangoen@redhat.com>
Co-authored-by: cfillekes <cfilleke@redhat.com>
Co-authored-by: Cheryl Fillekes <cfillekes@ibm.com>

OSSM-2376: Move kube controller to the federation package (istio#718)

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

OSSM-2376: Don't start federation controllers until informers have synced (istio#717) (istio#720)

* OSSM-2376: Don't start federation-discovery-controller until kube informer has synced

Federation discovery controller fetches config map with remote CA root
cert, so if the controller started before the informer has synced, it
would fail to fetch the config map.

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Store ConfigMap informer in a field of the discovery.Controller

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Refactor ResourceManager and don't start federation controller until informers has synced

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Simplify Start and HasSynced functions in federation controllers

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Move kube controller to the federation package

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

Federation example fixes (istio#758)

* Use default version in federation example SMCPs

* Fix paths in federation example

OSSM-3599 Federation egress-gateway gets wrong network gateway endpoints (istio#775)

* OSSM-3599 Federation egress-gateway gets wrong update of network gateway endpoints

* Deprecate GatewayEndpoints on server side

* Remove resyncNetworkGateways in unit tests

* Fix lint

* Deprecate NetworkGatewayEndpoints and fix tests

Refactor federation tests (istio#841)

* Refactor federation tests

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

* Add more test cases

Signed-off-by: Jacek Ewertowski <jewertow@redhat.com>

Reimplement InstancesByPort method

`InstancesByPort` is used by the federation server, which was removed in the upstream istio#46329. We reimplement it to support the federation server.

---------

Co-authored-by: Bartosz Majsak <bartosz.majsak@gmail.com>
Co-authored-by: Jacek Ewertowski <jewertow@redhat.com>
Co-authored-by: Daniel Grimm <dgrimm@redhat.com>
Co-authored-by: Rob Cernich <rcernich@redhat.com>
Co-authored-by: Jonh Wendell <jonh.wendell@redhat.com>
Co-authored-by: Marko Lukša <marko.luksa@gmail.com>
Co-authored-by: Praneeth Bajjuri <pbajjuri@redhat.com>
Co-authored-by: Yuanlin Xu <yuanlin.xu@redhat.com>
Co-authored-by: Brian Mangoenpawiro <bmangoen@redhat.com>
Co-authored-by: Cheryl Fillekes <cfillekes@ibm.com>
Signed-off-by: Yann Liu <yannliu@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants