Skip to content

Add Ambient multi cluster E2E tests for Multi Primary deployments#1353

Merged
istio-testing merged 3 commits intoistio-ecosystem:mainfrom
mkolesnik:ambient-multicluster
Dec 4, 2025
Merged

Add Ambient multi cluster E2E tests for Multi Primary deployments#1353
istio-testing merged 3 commits intoistio-ecosystem:mainfrom
mkolesnik:ambient-multicluster

Conversation

@mkolesnik
Copy link
Copy Markdown
Collaborator

What type of PR is this?

  • Enhancement / New Feature
  • Bug Fix
  • Refactor
  • Optimization
  • Test
  • Documentation Update

What this PR does / why we need it:

Istio 1.27+ supports running Multi-Primary deployments in Abmient mode, so tests were adapted to run both on Sidecar and Ambient mode.
Both modes run the same tests, sequentialy & independently of each other.

Refactors were made in the multi cluster tests to consolidate and reuse code, as part of the work to add the Ambient mode support.

Which issue(s) this PR fixes:

Fixes #

Related Issue/PR #

Additional information:

@mkolesnik mkolesnik requested a review from a team as a code owner November 17, 2025 13:13
@codecov
Copy link
Copy Markdown

codecov bot commented Nov 17, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 80.55%. Comparing base (7154627) to head (319bffd).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1353   +/-   ##
=======================================
  Coverage   80.55%   80.55%           
=======================================
  Files          44       44           
  Lines        2299     2299           
=======================================
  Hits         1852     1852           
  Misses        328      328           
  Partials      119      119           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@mkolesnik mkolesnik force-pushed the ambient-multicluster branch from 7c370c7 to 557a1a8 Compare November 18, 2025 06:27
Copy link
Copy Markdown
Contributor

@fjglira fjglira left a comment

Choose a reason for hiding this comment

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

lgtm, just two small comments

To be able to use directly without redefining or passing them all over.

The namespaces are reused in the test suite files (instead of redefined)
in order to minimize the amount of changes, but we can further refactor
this in the future.

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>
This males tests easier to maintain while avoiding code duplication

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>
@mkolesnik mkolesnik force-pushed the ambient-multicluster branch from 557a1a8 to 9d27a56 Compare December 3, 2025 09:52
@mkolesnik mkolesnik requested a review from fjglira December 3, 2025 09:52
Istio 1.27+ supports running Multi-Primary deployments in Abmient mode,
so tests were adapted to run both on Sidecar and Ambient mode.

Both modes run the same tests, sequentialy & independently of each
other.

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>
@mkolesnik mkolesnik force-pushed the ambient-multicluster branch from 9d27a56 to 319bffd Compare December 3, 2025 11:03
@mkolesnik
Copy link
Copy Markdown
Collaborator Author

/retest

Copy link
Copy Markdown
Contributor

@fjglira fjglira left a comment

Choose a reason for hiding this comment

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

lgtm

@istio-testing istio-testing merged commit e3c9527 into istio-ecosystem:main Dec 4, 2025
18 checks passed
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Dec 4, 2025
* upstream/main:
  Add Ambient multi cluster E2E tests for Multi Primary deployments (istio-ecosystem#1353)
unsortedhashsets pushed a commit to unsortedhashsets/sail-operator that referenced this pull request Feb 11, 2026
…tio-ecosystem#1353)

* Expose common namespaces in E2E tests

To be able to use directly without redefining or passing them all over.

The namespaces are reused in the test suite files (instead of redefined)
in order to minimize the amount of changes, but we can further refactor
this in the future.

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>

* Extract multicluster resource creation

This males tests easier to maintain while avoiding code duplication

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>

* Add Ambient tests to E2E Multi Primary

Istio 1.27+ supports running Multi-Primary deployments in Abmient mode,
so tests were adapted to run both on Sidecar and Ambient mode.

Both modes run the same tests, sequentialy & independently of each
other.

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>

---------

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>
openshift-merge-bot bot pushed a commit to openshift-service-mesh/sail-operator that referenced this pull request Feb 11, 2026
* E2E code consolidations (istio-ecosystem#1397)

* E2E: Extract common function to await conditions

This code is very repetitive and verbose, extracting it to a common
function allows the tests to be much more concise and readable, without
affecting functionality.
The main benefit of this is making the tests easier to read and
maintain, and avoid repeating code (and making mistakes).

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>

* E2E: Add specific AwaitDeployment function

Most of the tests that await for the DeploymentAvailable condition do it
on the control plane namespace for a Deployment.
Extracting this specific case makes the tests even easier to read and
understand.

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>

* E2E: Add CheckSamplePodsReady function

Reuse CheckPodsReady and add a specific function CheckSamplePodsReady
since most of the calls are on the sample namespace.
Both checks are now in the `checks.go` file for logical consistency.

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>

* E2E: Extract waiting for CNI DaemonSet to be ready

This is repetitive and verbose, extracting this makes the tests easier to
read and maintain.

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>

---------

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>

* Add Ambient multi cluster E2E tests for Multi Primary deployments (istio-ecosystem#1353)

* Expose common namespaces in E2E tests

To be able to use directly without redefining or passing them all over.

The namespaces are reused in the test suite files (instead of redefined)
in order to minimize the amount of changes, but we can further refactor
this in the future.

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>

* Extract multicluster resource creation

This males tests easier to maintain while avoiding code duplication

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>

* Add Ambient tests to E2E Multi Primary

Istio 1.27+ supports running Multi-Primary deployments in Abmient mode,
so tests were adapted to run both on Sidecar and Ambient mode.

Both modes run the same tests, sequentialy & independently of each
other.

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>

---------

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>

* E2E: Fixes to stabilize the multicluster tests further (istio-ecosystem#1472)

* E2E: Add a validation for E/W GW to get LB IP

This might take a while, expecially on a public cloud.
Make sure the tests wait for the IP to be assigned before proceeding,
otherwise they'll get stuck later waiting for the communication to
proceed (and sometimes fail).

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>

* E2E: Add check that multicluster gateway rechable

To rule out infrastructure problems, a sanity check is added to try and
reach the gateway on the other side.
If this check fails, this could indicate an infrastructure problem.

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>

* E2E: Improve connectivity checking in multicluster

Having curl fetch the URL several times saves time waiting on responses
since it's much cheaper than each `exec` call.
This makes successful tests finish much faster instead of waiting for
the response to randomly land on the expected version.

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>

---------

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>

---------

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>
Co-authored-by: Mike Kolesnik <mkolesni@redhat.com>
dgn pushed a commit to dgn/sail-operator that referenced this pull request Mar 17, 2026
…tio-ecosystem#1353)

* Expose common namespaces in E2E tests

To be able to use directly without redefining or passing them all over.

The namespaces are reused in the test suite files (instead of redefined)
in order to minimize the amount of changes, but we can further refactor
this in the future.

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>

* Extract multicluster resource creation

This males tests easier to maintain while avoiding code duplication

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>

* Add Ambient tests to E2E Multi Primary

Istio 1.27+ supports running Multi-Primary deployments in Abmient mode,
so tests were adapted to run both on Sidecar and Ambient mode.

Both modes run the same tests, sequentialy & independently of each
other.

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>

---------

Signed-off-by: Mike Kolesnik <mkolesni@redhat.com>
Signed-off-by: Daniel Grimm <dgrimm@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants