Skip to content

Ambient Multicluster SplitHorizon WDS Implementation#56844

Merged
istio-testing merged 105 commits intoistio:masterfrom
Stevenjin8:steven/multicluster-ambient-index
Jul 10, 2025
Merged

Ambient Multicluster SplitHorizon WDS Implementation#56844
istio-testing merged 105 commits intoistio:masterfrom
Stevenjin8:steven/multicluster-ambient-index

Conversation

@Stevenjin8
Copy link
Copy Markdown
Contributor

@Stevenjin8 Stevenjin8 commented Jul 1, 2025

Please provide a description of this PR:

#56044

jaellio and others added 18 commits June 25, 2025 16:58
…dpoints

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

Pass MeshConfig to GlobalMergedWorkloadServicesCollection

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

Add cluster and listener service filtering for waypoints and
e/w gateways

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

Respond to PR feedback

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

Add more tests

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

Fix incorrect waypoint logic. In ambient mode, e/w gateways and waypoints
are both node.Type Waypoints

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

Remove unused ServicesForGateway

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

Updated failing lint and add a release note

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>
flag for ambient multi network.

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>
Signed-off-by: Jackie Elliott <jaellio@microsoft.com>
Signed-off-by: Jackie Elliott <jaellio@microsoft.com>
Signed-off-by: Jackie Elliott <jaellio@microsoft.com>
Signed-off-by: Jackie Elliott <jaellio@microsoft.com>
Signed-off-by: Jackie Elliott <jaellio@microsoft.com>
…jin8/istio into steven/multicluster-ambient-index
@Stevenjin8 Stevenjin8 requested review from a team as code owners July 1, 2025 15:23
@istio-policy-bot istio-policy-bot added area/ambient Issues related to ambient mesh area/networking feature/Multi-cluster issues related with multi-cluster support labels Jul 1, 2025
@istio-testing istio-testing added the size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. label Jul 1, 2025
@Stevenjin8 Stevenjin8 force-pushed the steven/multicluster-ambient-index branch from 1089f9d to d76b756 Compare July 10, 2025 13:15
Copy link
Copy Markdown
Contributor

@keithmattix keithmattix left a comment

Choose a reason for hiding this comment

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

Nice work! #56926 should fix the data race

issue: [56044]
releaseNotes:
- |
**Added** support for split horizon WDS for multicluster ambient.
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.

We probably just want one release note for ambient multicluster? WDYT?

}

// UID for split-horizon EDS workload that represents all the remote workloads of a service in another network.
// gw and service should be namespaced names
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.

Could you give an example here of the expected format for gw and service and the resulting output?

Do we want to validate that gw and service are namespaced names?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yes for 1. I don't think we need to validated, since we aren't parsing them.

Copy link
Copy Markdown
Contributor

@therealmitchconnors therealmitchconnors left a comment

Choose a reason for hiding this comment

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

approve test changes.

@jaellio
Copy link
Copy Markdown
Contributor

jaellio commented Jul 10, 2025

Please add integration tests in a follow up PR or this PR

@Stevenjin8 Stevenjin8 added the do-not-merge Block automatic merging of a PR. label Jul 10, 2025
@Stevenjin8 Stevenjin8 added the release-notes-none Indicates a PR that does not require release notes. label Jul 10, 2025
@Stevenjin8
Copy link
Copy Markdown
Contributor Author

/retest

1 similar comment
@Stevenjin8
Copy link
Copy Markdown
Contributor Author

/retest

@keithmattix
Copy link
Copy Markdown
Contributor

/test unit-tests-arm64

1 similar comment
@jaellio
Copy link
Copy Markdown
Contributor

jaellio commented Jul 10, 2025

/test unit-tests-arm64

@keithmattix
Copy link
Copy Markdown
Contributor

/test unit-tests-arm64

@keithmattix keithmattix removed the do-not-merge Block automatic merging of a PR. label Jul 10, 2025
@keithmattix
Copy link
Copy Markdown
Contributor

Integ tests are coming in a follow-up PR

@istio-testing istio-testing merged commit 7e40e3b into istio:master Jul 10, 2025
31 checks passed
@keithmattix keithmattix added the cherrypick/release-1.27 Set this label on a PR to auto-merge it to the release-1.27 branch label Jul 10, 2025
@istio-testing
Copy link
Copy Markdown
Collaborator

In response to a cherrypick label: #56844 failed to apply on top of branch "release-1.27":

Applying: Initial changes to reach label selector from mesh config to update endpoints
Using index info to reconstruct a base tree...
M	manifests/charts/base/files/profile-ambient.yaml
M	manifests/charts/default/files/profile-ambient.yaml
M	manifests/charts/gateway/files/profile-ambient.yaml
M	manifests/charts/gateways/istio-egress/files/profile-ambient.yaml
M	manifests/charts/gateways/istio-ingress/files/profile-ambient.yaml
M	manifests/charts/istio-cni/files/profile-ambient.yaml
M	manifests/charts/istio-control/istio-discovery/files/profile-ambient.yaml
M	manifests/charts/ztunnel/files/profile-ambient.yaml
M	manifests/helm-profiles/ambient.yaml
M	pilot/pkg/model/service.go
M	pilot/pkg/model/service_test.go
M	pilot/pkg/networking/core/listener_waypoint.go
M	pilot/pkg/networking/core/waypoint.go
M	pilot/pkg/serviceregistry/kube/controller/ambient/ambientindex.go
M	pilot/pkg/serviceregistry/kube/controller/ambient/multicluster.go
M	pilot/pkg/serviceregistry/kube/controller/ambient/remotesecrets.go
M	pilot/pkg/serviceregistry/kube/controller/ambient/services.go
M	pilot/pkg/serviceregistry/kube/controller/ambient/services_test.go
Falling back to patching base and 3-way merge...
Auto-merging pilot/pkg/serviceregistry/kube/controller/ambient/services_test.go
CONFLICT (content): Merge conflict in pilot/pkg/serviceregistry/kube/controller/ambient/services_test.go
Auto-merging pilot/pkg/serviceregistry/kube/controller/ambient/services.go
CONFLICT (content): Merge conflict in pilot/pkg/serviceregistry/kube/controller/ambient/services.go
Auto-merging pilot/pkg/serviceregistry/kube/controller/ambient/remotesecrets.go
Auto-merging pilot/pkg/serviceregistry/kube/controller/ambient/ambientindex.go
CONFLICT (content): Merge conflict in pilot/pkg/serviceregistry/kube/controller/ambient/ambientindex.go
Auto-merging pilot/pkg/networking/core/waypoint.go
Auto-merging pilot/pkg/networking/core/listener_waypoint.go
CONFLICT (content): Merge conflict in pilot/pkg/networking/core/listener_waypoint.go
Auto-merging pilot/pkg/model/service_test.go
CONFLICT (content): Merge conflict in pilot/pkg/model/service_test.go
Auto-merging pilot/pkg/model/service.go
CONFLICT (content): Merge conflict in pilot/pkg/model/service.go
Auto-merging manifests/helm-profiles/ambient.yaml
CONFLICT (content): Merge conflict in manifests/helm-profiles/ambient.yaml
Auto-merging manifests/charts/ztunnel/files/profile-ambient.yaml
CONFLICT (content): Merge conflict in manifests/charts/ztunnel/files/profile-ambient.yaml
Auto-merging manifests/charts/istio-control/istio-discovery/files/profile-ambient.yaml
CONFLICT (content): Merge conflict in manifests/charts/istio-control/istio-discovery/files/profile-ambient.yaml
Auto-merging manifests/charts/istio-cni/files/profile-ambient.yaml
CONFLICT (content): Merge conflict in manifests/charts/istio-cni/files/profile-ambient.yaml
Auto-merging manifests/charts/gateways/istio-ingress/files/profile-ambient.yaml
CONFLICT (content): Merge conflict in manifests/charts/gateways/istio-ingress/files/profile-ambient.yaml
Auto-merging manifests/charts/gateways/istio-egress/files/profile-ambient.yaml
CONFLICT (content): Merge conflict in manifests/charts/gateways/istio-egress/files/profile-ambient.yaml
Auto-merging manifests/charts/gateway/files/profile-ambient.yaml
CONFLICT (content): Merge conflict in manifests/charts/gateway/files/profile-ambient.yaml
Auto-merging manifests/charts/default/files/profile-ambient.yaml
CONFLICT (content): Merge conflict in manifests/charts/default/files/profile-ambient.yaml
Auto-merging manifests/charts/base/files/profile-ambient.yaml
CONFLICT (content): Merge conflict in manifests/charts/base/files/profile-ambient.yaml
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
hint: When you have resolved this problem, run "git am --continue".
hint: If you prefer to skip this patch, run "git am --skip" instead.
hint: To restore the original branch and stop patching, run "git am --abort".
hint: Disable this message with "git config advice.mergeConflict false"
Patch failed at 0001 Initial changes to reach label selector from mesh config to update endpoints

@istio-testing
Copy link
Copy Markdown
Collaborator

In response to a cherrypick label: new issue created for failed cherrypick: #56970

Stevenjin8 added a commit to Stevenjin8/istio that referenced this pull request Jul 11, 2025
* Initial changes to reach label selector from mesh config to update endpoints

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

Pass MeshConfig to GlobalMergedWorkloadServicesCollection

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

Add cluster and listener service filtering for waypoints and
e/w gateways

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

Respond to PR feedback

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

Add more tests

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

Fix incorrect waypoint logic. In ambient mode, e/w gateways and waypoints
are both node.Type Waypoints

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

Remove unused ServicesForGateway

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

Updated failing lint and add a release note

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Filter services in ServiceServiceBuilder and check feature
flag for ambient multi network.

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Move feature flag set to avoid race

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Fix race

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Remove ScopeByService on workload

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Fix fmt

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Add scope to serviceInfo equality check

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Also add Service SANS

* [REMOVE ME] enable multinetwork ambient by default

* Move number theory functions to math module

* Even capacity distribution with multiple gateways

* Automatically include waypoint svc of global svcs

* Some refactoring too

* Messy checkpoint

* Random

* Jackie rebase

* Jackie rebase

* Tests passing (?)

* Lint

* Enable domain suffixes

* fix tests again

* Make gen

* Add e/w gateway support for ambient multi network tests

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Fix integration tests

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Fix lint/gen and test failures

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Tests passing (?)

* Lint

* Automator: update proxy@master in istio/istio@master (istio#56771)

* Fix Gateway API tests to consider istio test cli flags (istio#56704)

* set revision when running istioctl

* Add revision to gateway in ManagedGatewayTest

* Do not hardcode istio-system in UnamagedGatewayTest

* include istioNamespace in istioctl commands for TaggedGatewayTest

* Use Revisions instead of Revision (later is deprecated)

* only set --istioNamespace is c.istioNamespace

* If ingress gateway ns not set, use istio-system

* set also ingress gateway svc name

* remove revision from ManagedGatewayTest (not needed), add TODO comment for remaining test

* feat: represent revision tags using services (istio#56141)

* first iteration of using services and mutatingwebhooks as tags

* include namespaces

* log warnings on conflict

* rename revision-tags to revision-tags-mwc.yaml

* Create service tags on helm istiod chart

* initial iteration for istioctl tag set

* include IstioNamespace in GenerateOptions

* Update signature of Generate to return a list of objects to generate

* consider service if running ambient

* go back to strings when returning

* go back to string completely, delete TagResources

* rename service object

* move break to correct line

* implement istioctl tag remove

* add uniqTagsFromServices and uniqTagsFromWebhooks

* istioctl tag list consider services

* add operatorManageWebhooks guard to revision-tags-mwc.yaml

* rename revision-tags.yaml to revision-tags-svc.yaml

* refactor delete test case

* test istioctl tag list

* remove ambient check, create and manage both resources at the same time

* wip test cases

* remove controlplane mode

* fix test

* my own code review

* fix compilation error

* fix lint

* wip integ-helm_istio

* add app=istiod label filter

* merge override labels in generate.go

* add release note

* set owner labels to revision service tag

* rollback changes on e2e for helm

* fix helm e2e

* use servicesAfters instead of webhooksAfter in tag_test.go assertion log

* Remove unnecessary deprecation message

* refactor tag_test.go to reduce diff size

* Update client go (istio#56780)

* Automator: update istio/client-go@master dependency in istio/istio@master

* fix test

* fix more

* fix TestTelemetryMetricsExhaustiveness

---------

Co-authored-by: istio-testing <istio-testing-bot@google.com>

* Automator: update istio/client-go@master dependency in istio/istio@master (istio#56781)

* Impl RetryBudget in DestinationRule (istio#56782)

* impl RetryBudget

* release notes

* add test case

* add release notes for ClusterTrustBundle (istio#56748)

* Add domain resolve to Ambient TestServiceEntryInlinedWorkloadEntry test (istio#56784)

When executing TestServiceEntryInlinedWorkloadEntry Ambient test in a
public cloud based cluster, the created ingress is a domain based name
and the test fails with the following error:

configuration is invalid: endpoint address
"a6eec2a91721a42b0aa8e140fc6611fc-1873540778.us-east-1.elb.amazonaws.com"
is not a valid IP address

Add a domain name resolution to ip based address.

Signed-off-by: Maxim Babushkin <mbabushk@redhat.com>

* Automator: update common-files@master in istio/istio@master (istio#56788)

* Automator: update proxy@master in istio/istio@master (istio#56789)

* Do not transitively import net/trace (istio#56637)

* Do not transitively import net/trace

This drops 300kb off the binary. Note a big deal but
istio#56636 is a 5mb potentional and
this is a step to it

* drop license

* Automator: update istio/client-go@master dependency in istio/istio@master (istio#56790)

* do not use discovery filter for system namespace network (istio#56687)

* do not use discovery filter for system namespace network

* relnote

* revert label selector

* Automator: update proxy@master in istio/istio@master (istio#56794)

* status: fix busyloop (istio#56798)

This has been observed to cause extremely high CPU usage as we busyloop.

Basically if we have at least 1 pending item, and we re-enqueue and
actively worked on item, it will busy loop until the actively worked on
item is handled.

We should instead kill this worker. The other worker will handle the
task when it completes

* Gateway: provide stable HTTPRoute status ordering (istio#56504)

* Add test cases

* gateway: emit HTTPRoute status in a stable ordering

* Update tests

* fix test

* Automator: update ztunnel@master in istio/istio@master (istio#56803)

* manifests: refactor conditions for tproxy and capNetBindService (istio#56809)

* manifests: refactor conditions for TPROXY

Signed-off-by: Jacek Ewertowski <jacek.ewertowski1@gmail.com>

* Encapsulate checking capNetBindService

Signed-off-by: Jacek Ewertowski <jacek.ewertowski1@gmail.com>

---------

Signed-off-by: Jacek Ewertowski <jacek.ewertowski1@gmail.com>

* tests: assign privileged SCC to tproxy SA on OpenShift (istio#56799)

* tests: assign privileged SCC to tproxy SA on OpenShift

Signed-off-by: Jacek Ewertowski <jacek.ewertowski1@gmail.com>

* Rename bool variable `openshift` to `isOpenShift`

Signed-off-by: Jacek Ewertowski <jacek.ewertowski1@gmail.com>

* Fix a typo in CRB name

Signed-off-by: Jacek Ewertowski <jacek.ewertowski1@gmail.com>

---------

Signed-off-by: Jacek Ewertowski <jacek.ewertowski1@gmail.com>

* fix dns althost name generation (istio#56806)

* fix dns althost name generation

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* remove unnecessary test change

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

---------

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* add gateway implementation for retry budget (istio#56808)

* add gateway implementation for retry budget

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* comments

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

---------

Signed-off-by: Rama Chavali <rama.rao@salesforce.com>

* tcp/tls route: fix multiple parent binds (istio#56818)

Fixes istio#56769

The problem was we had non-unique names for each generated object. Add
unit tests and fix to use the same counting appraoch HTTP/GRPC uses

* Automator: update proxy@master in istio/istio@master (istio#56813)

* Add annotation support to deployment object in istio discovery chart (istio#56787)

* Add deployment object annotation support to istio discovery chart

* Add release note for deployment object annotation support to istiod chart

* Automator: update go-control-plane in istio/istio@master (istio#56821)

* Automator: update proxy@master in istio/istio@master (istio#56822)

* Automator: update proxy@master in istio/istio@master (istio#56823)

* Automator: update proxy@master in istio/istio@master (istio#56829)

* Create Istio owned CNI config (istio#56156)

* Create Istio owned CNI config

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Set CNIConfName to primary CNI config file name

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Make Istio owned cni config opt in and the config name
configurable

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Add warning for invalid istio own cni config filename priority

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Add release note

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

---------

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Revert "feat: represent revision tags using services (istio#56141)" (istio#56833)

This reverts commit 0550a31.

* Automator: update istio/client-go@master dependency in istio/istio@master (istio#56835)

* Automator: update ztunnel@master in istio/istio@master (istio#56840)

* improve istioctl dashboard example (istio#56842)

Signed-off-by: xin.li <xin.li@daocloud.io>

* Automator: update common-files@master in istio/istio@master (istio#56834)

* Automator: update proxy@master in istio/istio@master (istio#56846)

* Enable domain suffixes

* fix tests again

* Make gen

* Respond to Keith's PR feedback

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Fix get and comparison

* review part 1

* Fix gen

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Add support waypoint visibility at network gateways when the
waypoint has globally scoped services

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Get rid of splithorizon specific stuff

* lint

* lint

* - deploy e/w gateway with blackhole listener/cluster if ambient
multinetwork is enable to allow for existence even if no globally
scoped services exist
- utilize existing apps for integration tests

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* wait on eastwest gateway by checking programmed
status

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Minimize diff

* Update default servicescopeconfig and duplicate DeployGatewayAPI
for simplicity

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Fix indentation and remove unrelated file

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Compare networks rather than cluster id to determine locality

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* review part 2

* correct east west gw svc name

* Use correct address for e/w gateway and compare networks rather
than clusterids

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Add todo and remove duplicate config

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Fix flakes

* Add comment to fix e/w gateway service lookup perf in beta

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>

* Include network gateways

* use other network gateway

* Use name when generating ewgateway workloads

* Keith review

* Don't use gateway suffixes

* releasenotes

* Fix service merging and nwgateway naming

* Issue about multiple network gateways

* Lint, fix test, and remove release note

* Jackie review

* More docs

---------

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>
Signed-off-by: Maxim Babushkin <mbabushk@redhat.com>
Signed-off-by: Jacek Ewertowski <jacek.ewertowski1@gmail.com>
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
Signed-off-by: xin.li <xin.li@daocloud.io>
Co-authored-by: Jackie Elliott <jaellio@microsoft.com>
Co-authored-by: Istio Automation <istio-testing-bot@google.com>
Co-authored-by: German Robayo <germanrobayo33@gmail.com>
Co-authored-by: zirain <zirain2009@gmail.com>
Co-authored-by: Maxim Babushkin <mbabushk@redhat.com>
Co-authored-by: John Howard <howardjohn@google.com>
Co-authored-by: Steven Landow <steven@landow.dev>
Co-authored-by: Jacek Ewertowski <jacek.ewertowski1@gmail.com>
Co-authored-by: Rama Chavali <rama.rao@salesforce.com>
Co-authored-by: Ramal Abeysekera <ramal.abeysekera@hotmail.com>
Co-authored-by: Jackie Maertens (Elliott) <64559656+jaellio@users.noreply.github.com>
Co-authored-by: Keith Mattix II <keithmattix2@gmail.com>
Co-authored-by: my-git9 <xin.li@daocloud.io>
istio-testing added a commit that referenced this pull request Jul 12, 2025
* Initial changes to reach label selector from mesh config to update endpoints



Pass MeshConfig to GlobalMergedWorkloadServicesCollection



Add cluster and listener service filtering for waypoints and
e/w gateways



Respond to PR feedback



Add more tests



Fix incorrect waypoint logic. In ambient mode, e/w gateways and waypoints
are both node.Type Waypoints



Remove unused ServicesForGateway



Updated failing lint and add a release note



* Filter services in ServiceServiceBuilder and check feature
flag for ambient multi network.



* Move feature flag set to avoid race



* Fix race



* Remove ScopeByService on workload



* Fix fmt



* Add scope to serviceInfo equality check



* Also add Service SANS

* [REMOVE ME] enable multinetwork ambient by default

* Move number theory functions to math module

* Even capacity distribution with multiple gateways

* Automatically include waypoint svc of global svcs

* Some refactoring too

* Messy checkpoint

* Random

* Jackie rebase

* Jackie rebase

* Tests passing (?)

* Lint

* Enable domain suffixes

* fix tests again

* Make gen

* Add e/w gateway support for ambient multi network tests



* Fix integration tests



* Fix lint/gen and test failures



* Tests passing (?)

* Lint

* Automator: update proxy@master in istio/istio@master (#56771)

* Fix Gateway API tests to consider istio test cli flags (#56704)

* set revision when running istioctl

* Add revision to gateway in ManagedGatewayTest

* Do not hardcode istio-system in UnamagedGatewayTest

* include istioNamespace in istioctl commands for TaggedGatewayTest

* Use Revisions instead of Revision (later is deprecated)

* only set --istioNamespace is c.istioNamespace

* If ingress gateway ns not set, use istio-system

* set also ingress gateway svc name

* remove revision from ManagedGatewayTest (not needed), add TODO comment for remaining test

* feat: represent revision tags using services (#56141)

* first iteration of using services and mutatingwebhooks as tags

* include namespaces

* log warnings on conflict

* rename revision-tags to revision-tags-mwc.yaml

* Create service tags on helm istiod chart

* initial iteration for istioctl tag set

* include IstioNamespace in GenerateOptions

* Update signature of Generate to return a list of objects to generate

* consider service if running ambient

* go back to strings when returning

* go back to string completely, delete TagResources

* rename service object

* move break to correct line

* implement istioctl tag remove

* add uniqTagsFromServices and uniqTagsFromWebhooks

* istioctl tag list consider services

* add operatorManageWebhooks guard to revision-tags-mwc.yaml

* rename revision-tags.yaml to revision-tags-svc.yaml

* refactor delete test case

* test istioctl tag list

* remove ambient check, create and manage both resources at the same time

* wip test cases

* remove controlplane mode

* fix test

* my own code review

* fix compilation error

* fix lint

* wip integ-helm_istio

* add app=istiod label filter

* merge override labels in generate.go

* add release note

* set owner labels to revision service tag

* rollback changes on e2e for helm

* fix helm e2e

* use servicesAfters instead of webhooksAfter in tag_test.go assertion log

* Remove unnecessary deprecation message

* refactor tag_test.go to reduce diff size

* Update client go (#56780)

* Automator: update istio/client-go@master dependency in istio/istio@master

* fix test

* fix more

* fix TestTelemetryMetricsExhaustiveness

---------



* Automator: update istio/client-go@master dependency in istio/istio@master (#56781)

* Impl RetryBudget in DestinationRule (#56782)

* impl RetryBudget

* release notes

* add test case

* add release notes for ClusterTrustBundle (#56748)

* Add domain resolve to Ambient TestServiceEntryInlinedWorkloadEntry test (#56784)

When executing TestServiceEntryInlinedWorkloadEntry Ambient test in a
public cloud based cluster, the created ingress is a domain based name
and the test fails with the following error:

configuration is invalid: endpoint address
"a6eec2a91721a42b0aa8e140fc6611fc-1873540778.us-east-1.elb.amazonaws.com"
is not a valid IP address

Add a domain name resolution to ip based address.



* Automator: update common-files@master in istio/istio@master (#56788)

* Automator: update proxy@master in istio/istio@master (#56789)

* Do not transitively import net/trace (#56637)

* Do not transitively import net/trace

This drops 300kb off the binary. Note a big deal but
#56636 is a 5mb potentional and
this is a step to it

* drop license

* Automator: update istio/client-go@master dependency in istio/istio@master (#56790)

* do not use discovery filter for system namespace network (#56687)

* do not use discovery filter for system namespace network

* relnote

* revert label selector

* Automator: update proxy@master in istio/istio@master (#56794)

* status: fix busyloop (#56798)

This has been observed to cause extremely high CPU usage as we busyloop.

Basically if we have at least 1 pending item, and we re-enqueue and
actively worked on item, it will busy loop until the actively worked on
item is handled.

We should instead kill this worker. The other worker will handle the
task when it completes

* Gateway: provide stable HTTPRoute status ordering (#56504)

* Add test cases

* gateway: emit HTTPRoute status in a stable ordering

* Update tests

* fix test

* Automator: update ztunnel@master in istio/istio@master (#56803)

* manifests: refactor conditions for tproxy and capNetBindService (#56809)

* manifests: refactor conditions for TPROXY



* Encapsulate checking capNetBindService



---------



* tests: assign privileged SCC to tproxy SA on OpenShift (#56799)

* tests: assign privileged SCC to tproxy SA on OpenShift



* Rename bool variable `openshift` to `isOpenShift`



* Fix a typo in CRB name



---------



* fix dns althost name generation (#56806)

* fix dns althost name generation



* remove unnecessary test change



---------



* add gateway implementation for retry budget (#56808)

* add gateway implementation for retry budget



* comments



---------



* tcp/tls route: fix multiple parent binds (#56818)

Fixes #56769

The problem was we had non-unique names for each generated object. Add
unit tests and fix to use the same counting appraoch HTTP/GRPC uses

* Automator: update proxy@master in istio/istio@master (#56813)

* Add annotation support to deployment object in istio discovery chart (#56787)

* Add deployment object annotation support to istio discovery chart

* Add release note for deployment object annotation support to istiod chart

* Automator: update go-control-plane in istio/istio@master (#56821)

* Automator: update proxy@master in istio/istio@master (#56822)

* Automator: update proxy@master in istio/istio@master (#56823)

* Automator: update proxy@master in istio/istio@master (#56829)

* Create Istio owned CNI config (#56156)

* Create Istio owned CNI config



* Set CNIConfName to primary CNI config file name



* Make Istio owned cni config opt in and the config name
configurable



* Add warning for invalid istio own cni config filename priority



* Add release note



---------



* Revert "feat: represent revision tags using services (#56141)" (#56833)

This reverts commit 0550a31.

* Automator: update istio/client-go@master dependency in istio/istio@master (#56835)

* Automator: update ztunnel@master in istio/istio@master (#56840)

* improve istioctl dashboard example (#56842)



* Automator: update common-files@master in istio/istio@master (#56834)

* Automator: update proxy@master in istio/istio@master (#56846)

* Enable domain suffixes

* fix tests again

* Make gen

* Respond to Keith's PR feedback



* Fix get and comparison

* review part 1

* Fix gen



* Add support waypoint visibility at network gateways when the
waypoint has globally scoped services



* Get rid of splithorizon specific stuff

* lint

* lint

* - deploy e/w gateway with blackhole listener/cluster if ambient
multinetwork is enable to allow for existence even if no globally
scoped services exist
- utilize existing apps for integration tests



* wait on eastwest gateway by checking programmed
status



* Minimize diff

* Update default servicescopeconfig and duplicate DeployGatewayAPI
for simplicity



* Fix indentation and remove unrelated file



* Compare networks rather than cluster id to determine locality



* review part 2

* correct east west gw svc name

* Use correct address for e/w gateway and compare networks rather
than clusterids



* Add todo and remove duplicate config



* Fix flakes

* Add comment to fix e/w gateway service lookup perf in beta



* Include network gateways

* use other network gateway

* Use name when generating ewgateway workloads

* Keith review

* Don't use gateway suffixes

* releasenotes

* Fix service merging and nwgateway naming

* Issue about multiple network gateways

* Lint, fix test, and remove release note

* Jackie review

* More docs

---------

Signed-off-by: Jackie Elliott <jaellio@microsoft.com>
Signed-off-by: Maxim Babushkin <mbabushk@redhat.com>
Signed-off-by: Jacek Ewertowski <jacek.ewertowski1@gmail.com>
Signed-off-by: Rama Chavali <rama.rao@salesforce.com>
Signed-off-by: xin.li <xin.li@daocloud.io>
Co-authored-by: Jackie Elliott <jaellio@microsoft.com>
Co-authored-by: Istio Automation <istio-testing-bot@google.com>
Co-authored-by: German Robayo <germanrobayo33@gmail.com>
Co-authored-by: zirain <zirain2009@gmail.com>
Co-authored-by: Maxim Babushkin <mbabushk@redhat.com>
Co-authored-by: John Howard <howardjohn@google.com>
Co-authored-by: Steven Landow <steven@landow.dev>
Co-authored-by: Jacek Ewertowski <jacek.ewertowski1@gmail.com>
Co-authored-by: Rama Chavali <rama.rao@salesforce.com>
Co-authored-by: Ramal Abeysekera <ramal.abeysekera@hotmail.com>
Co-authored-by: Jackie Maertens (Elliott) <64559656+jaellio@users.noreply.github.com>
Co-authored-by: Keith Mattix II <keithmattix2@gmail.com>
Co-authored-by: my-git9 <xin.li@daocloud.io>
fjglira pushed a commit to fjglira/istio that referenced this pull request Sep 26, 2025
* upstream/master: (21 commits)
  feat: skip queue for status updates on gw (istio#56962)
  Automator: update proxy@master in istio/istio@master (istio#56993)
  Automator: update proxy@master in istio/istio@master (istio#56990)
  Change host iptables rule addition from Append to Insert to ensure Istio's rules take precedence (istio#56414)
  support specifying proxy admin port for describe (istio#56854)
  support reset log level or stack trace level separately for admin log (istio#56642)
  improve example format for istioctl x describe (istio#56951)
  Automator: update ztunnel@master in istio/istio@master (istio#56971)
  Remove flaky test (istio#56919)
  fix: fixes test which fails for distroless (istio#56965)
  Automator: update proxy@master in istio/istio@master (istio#56969)
  Ambient Multicluster SplitHorizon WDS Implementation (istio#56844)
  Fix log message in cni install.go file (istio#56966)
  add env vars for ip auto allocate ipv4/v6 cidr prefixes (istio#56276)
  Update BASE_VERSION to master-2025-07-10T19-01-16 (istio#56967)
  Add AllowCRDsMismatch parameter to gateway conformance options. (istio#56945)
  Revert "feat: represent revision tags using services (istio#56851)" (istio#56941)
  Automator: update proxy@master in istio/istio@master (istio#56954)
  Automator: update istio/client-go@master dependency in istio/istio@master (istio#56911)
  Automator: update common-files@master in istio/istio@master (istio#56952)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/ambient Issues related to ambient mesh area/networking cherrypick/release-1.27 Set this label on a PR to auto-merge it to the release-1.27 branch feature/Multi-cluster issues related with multi-cluster support release-notes-none Indicates a PR that does not require release notes. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.