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

Implement e2e dualStack data plane tests #383

Merged

Conversation

sridhargaddam
Copy link
Contributor

This PR validates the following use-cases

It spawns a

  1. dualStack service in dual-stack namespace which listens on both IPv4 and IPv6 addresses
  2. ipv4 only service in ipv4 namespace which listens only on IPv4 address
  3. ipv6 only service in ipv6 namespace which listens only on IPv6 address

After spawning the above pods, it uses a sleep pod and tries to connect to all the three services to verify that connectivity is successful for all the services.

To run the tests, use the following command.
$ export IP_FAMILY=dual
$ make test.e2e.kind

Related to: #372
Signed-off-by: Sridhar Gaddam sgaddam@redhat.com

@sridhargaddam sridhargaddam requested a review from a team as a code owner October 4, 2024 15:49
Copy link
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, I added some minor comments.
Besides those comments, will you create also the job to run this test here in the sail repo? Are you planning to add more test related to dualStack?

tests/e2e/dualstack/dualstack_test.go Outdated Show resolved Hide resolved
tests/e2e/dualstack/dualstack_test.go Outdated Show resolved Hide resolved
tests/e2e/dualstack/dualstack_test.go Outdated Show resolved Hide resolved
@FilipB
Copy link
Collaborator

FilipB commented Oct 7, 2024

Do you know if there are any dual stack tests in core istio/istio?

@fjglira
Copy link
Contributor

fjglira commented Oct 7, 2024

Do you know if there are any dual stack tests in core istio/istio?

Yes, some of the ambient and integration tests set IP_FAMILY to dual, for example: https://github.com/istio/test-infra/blob/638d34a5abd39033166230f10f1a973a832ded95/prow/config/jobs/istio.yaml#L123

This PR validates the following use-cases

It spawns a
1. dualStack service in dual-stack namespace which listens on both IPv4 and IPv6 addresses
2. ipv4 only service in ipv4 namespace which listens only on IPv4 address
3. ipv6 only service in ipv6 namespace which listens only on IPv6 address

After spawning the above pods, it uses a sleep pod and tries to connect to all
the three services to verify that connectivity is successful for all the services.

To run the tests, use the following command.
$ export IP_FAMILY=dual
$ make test.e2e.kind

Related to: istio-ecosystem#372
Signed-off-by: Sridhar Gaddam <sgaddam@redhat.com>
@sridhargaddam
Copy link
Contributor Author

LGTM, I added some minor comments. Besides those comments, will you create also the job to run this test here in the sail repo?

Yes @fjglira. I'm working on it.

Are you planning to add more test related to dualStack?

No, we are good. I basically automated the following validation in the e2e tests.

Signed-off-by: Sridhar Gaddam <sgaddam@redhat.com>
@sridhargaddam sridhargaddam force-pushed the ds-e2e-data-path-tests branch from 5eba68e to 53bf1ab Compare October 7, 2024 12:01
Signed-off-by: Sridhar Gaddam <sgaddam@redhat.com>
@istio-testing istio-testing merged commit e4ffa47 into istio-ecosystem:main Oct 7, 2024
13 checks passed
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Oct 7, 2024
* upstream/main: (27 commits)
  Implement e2e dualStack data plane tests (istio-ecosystem#383)
  Fix error handling in deployBookinfo (istio-ecosystem#384)
  Adding default value for IP_FAMILY (istio-ecosystem#378)
  Update/Fix Istioctl links and docs (istio-ecosystem#349)
  Fix broken url for sample gateway (istio-ecosystem#377)
  Implement e2e dualStack control plane tests (istio-ecosystem#373)
  Improve pull request template (istio-ecosystem#376)
  Add ability to specify resources in helm chart (istio-ecosystem#375)
  Update dependencies and fix transform (istio-ecosystem#374)
  E2E kubectl util refactor (istio-ecosystem#368)
  Update helm chart README (istio-ecosystem#370)
  Add pull request template (istio-ecosystem#366)
  Fix formatting in the charts readme page (istio-ecosystem#364)
  Add CODE-OF-CONDUCT to the project (istio-ecosystem#362)
  Update test labels in the wayofwork documentation (istio-ecosystem#359)
  Automatically adjust default release channel (istio-ecosystem#353)
  Adding wait after olm install in olm test setup (istio-ecosystem#357)
  Adding E2e multicluster test (istio-ecosystem#342)
  Use Kubernetes defaults for imagePullPolicy (istio-ecosystem#352)
  Add External Controlplane to user docs (istio-ecosystem#335)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Oct 7, 2024
* upstream/main: (27 commits)
  Implement e2e dualStack data plane tests (istio-ecosystem#383)
  Fix error handling in deployBookinfo (istio-ecosystem#384)
  Adding default value for IP_FAMILY (istio-ecosystem#378)
  Update/Fix Istioctl links and docs (istio-ecosystem#349)
  Fix broken url for sample gateway (istio-ecosystem#377)
  Implement e2e dualStack control plane tests (istio-ecosystem#373)
  Improve pull request template (istio-ecosystem#376)
  Add ability to specify resources in helm chart (istio-ecosystem#375)
  Update dependencies and fix transform (istio-ecosystem#374)
  E2E kubectl util refactor (istio-ecosystem#368)
  Update helm chart README (istio-ecosystem#370)
  Add pull request template (istio-ecosystem#366)
  Fix formatting in the charts readme page (istio-ecosystem#364)
  Add CODE-OF-CONDUCT to the project (istio-ecosystem#362)
  Update test labels in the wayofwork documentation (istio-ecosystem#359)
  Automatically adjust default release channel (istio-ecosystem#353)
  Adding wait after olm install in olm test setup (istio-ecosystem#357)
  Adding E2e multicluster test (istio-ecosystem#342)
  Use Kubernetes defaults for imagePullPolicy (istio-ecosystem#352)
  Add External Controlplane to user docs (istio-ecosystem#335)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Oct 8, 2024
* upstream/main: (27 commits)
  Implement e2e dualStack data plane tests (istio-ecosystem#383)
  Fix error handling in deployBookinfo (istio-ecosystem#384)
  Adding default value for IP_FAMILY (istio-ecosystem#378)
  Update/Fix Istioctl links and docs (istio-ecosystem#349)
  Fix broken url for sample gateway (istio-ecosystem#377)
  Implement e2e dualStack control plane tests (istio-ecosystem#373)
  Improve pull request template (istio-ecosystem#376)
  Add ability to specify resources in helm chart (istio-ecosystem#375)
  Update dependencies and fix transform (istio-ecosystem#374)
  E2E kubectl util refactor (istio-ecosystem#368)
  Update helm chart README (istio-ecosystem#370)
  Add pull request template (istio-ecosystem#366)
  Fix formatting in the charts readme page (istio-ecosystem#364)
  Add CODE-OF-CONDUCT to the project (istio-ecosystem#362)
  Update test labels in the wayofwork documentation (istio-ecosystem#359)
  Automatically adjust default release channel (istio-ecosystem#353)
  Adding wait after olm install in olm test setup (istio-ecosystem#357)
  Adding E2e multicluster test (istio-ecosystem#342)
  Use Kubernetes defaults for imagePullPolicy (istio-ecosystem#352)
  Add External Controlplane to user docs (istio-ecosystem#335)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Oct 8, 2024
* upstream/main: (27 commits)
  Implement e2e dualStack data plane tests (istio-ecosystem#383)
  Fix error handling in deployBookinfo (istio-ecosystem#384)
  Adding default value for IP_FAMILY (istio-ecosystem#378)
  Update/Fix Istioctl links and docs (istio-ecosystem#349)
  Fix broken url for sample gateway (istio-ecosystem#377)
  Implement e2e dualStack control plane tests (istio-ecosystem#373)
  Improve pull request template (istio-ecosystem#376)
  Add ability to specify resources in helm chart (istio-ecosystem#375)
  Update dependencies and fix transform (istio-ecosystem#374)
  E2E kubectl util refactor (istio-ecosystem#368)
  Update helm chart README (istio-ecosystem#370)
  Add pull request template (istio-ecosystem#366)
  Fix formatting in the charts readme page (istio-ecosystem#364)
  Add CODE-OF-CONDUCT to the project (istio-ecosystem#362)
  Update test labels in the wayofwork documentation (istio-ecosystem#359)
  Automatically adjust default release channel (istio-ecosystem#353)
  Adding wait after olm install in olm test setup (istio-ecosystem#357)
  Adding E2e multicluster test (istio-ecosystem#342)
  Use Kubernetes defaults for imagePullPolicy (istio-ecosystem#352)
  Add External Controlplane to user docs (istio-ecosystem#335)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Oct 8, 2024
* upstream/main: (28 commits)
  Clean up code (istio-ecosystem#392)
  Implement e2e dualStack data plane tests (istio-ecosystem#383)
  Fix error handling in deployBookinfo (istio-ecosystem#384)
  Adding default value for IP_FAMILY (istio-ecosystem#378)
  Update/Fix Istioctl links and docs (istio-ecosystem#349)
  Fix broken url for sample gateway (istio-ecosystem#377)
  Implement e2e dualStack control plane tests (istio-ecosystem#373)
  Improve pull request template (istio-ecosystem#376)
  Add ability to specify resources in helm chart (istio-ecosystem#375)
  Update dependencies and fix transform (istio-ecosystem#374)
  E2E kubectl util refactor (istio-ecosystem#368)
  Update helm chart README (istio-ecosystem#370)
  Add pull request template (istio-ecosystem#366)
  Fix formatting in the charts readme page (istio-ecosystem#364)
  Add CODE-OF-CONDUCT to the project (istio-ecosystem#362)
  Update test labels in the wayofwork documentation (istio-ecosystem#359)
  Automatically adjust default release channel (istio-ecosystem#353)
  Adding wait after olm install in olm test setup (istio-ecosystem#357)
  Adding E2e multicluster test (istio-ecosystem#342)
  Use Kubernetes defaults for imagePullPolicy (istio-ecosystem#352)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Oct 8, 2024
* upstream/main: (30 commits)
  Add Helm artifacts publish automation (istio-ecosystem#385)
  Simplify supportedversion.go and add unit tests (istio-ecosystem#391)
  Clean up code (istio-ecosystem#392)
  Implement e2e dualStack data plane tests (istio-ecosystem#383)
  Fix error handling in deployBookinfo (istio-ecosystem#384)
  Adding default value for IP_FAMILY (istio-ecosystem#378)
  Update/Fix Istioctl links and docs (istio-ecosystem#349)
  Fix broken url for sample gateway (istio-ecosystem#377)
  Implement e2e dualStack control plane tests (istio-ecosystem#373)
  Improve pull request template (istio-ecosystem#376)
  Add ability to specify resources in helm chart (istio-ecosystem#375)
  Update dependencies and fix transform (istio-ecosystem#374)
  E2E kubectl util refactor (istio-ecosystem#368)
  Update helm chart README (istio-ecosystem#370)
  Add pull request template (istio-ecosystem#366)
  Fix formatting in the charts readme page (istio-ecosystem#364)
  Add CODE-OF-CONDUCT to the project (istio-ecosystem#362)
  Update test labels in the wayofwork documentation (istio-ecosystem#359)
  Automatically adjust default release channel (istio-ecosystem#353)
  Adding wait after olm install in olm test setup (istio-ecosystem#357)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Oct 8, 2024
* upstream/main: (40 commits)
  Make patch-csv.sh more readable
  Fix patch-csv.sh so that it finds hub, image, and tag in newer Istio versions
  Ensure Primary-Remote e2e test is also skipped for 1.24 pre-release versions
  Print Istio CNI logs when test fails
  Temporarily disable RemoteIstio tests for 1.24+
  Make gen
  Add generics to EnqueueEventLogger and AdditionNotifierQueue
  Update Istio versions
  Remove reference to istiod-remote chart
  Ensure crd-all.gen.yaml file is found in newer and older Istio versions
  Add Helm artifacts publish automation (istio-ecosystem#385)
  Simplify supportedversion.go and add unit tests (istio-ecosystem#391)
  Clean up code (istio-ecosystem#392)
  Implement e2e dualStack data plane tests (istio-ecosystem#383)
  Fix error handling in deployBookinfo (istio-ecosystem#384)
  Adding default value for IP_FAMILY (istio-ecosystem#378)
  Update/Fix Istioctl links and docs (istio-ecosystem#349)
  Fix broken url for sample gateway (istio-ecosystem#377)
  Implement e2e dualStack control plane tests (istio-ecosystem#373)
  Improve pull request template (istio-ecosystem#376)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Oct 8, 2024
* upstream/main: (42 commits)
  Improve kubectl utility in e2e tests (istio-ecosystem#394)
  Don't add istiod-remote chart when updating latest version (istio-ecosystem#396)
  Make patch-csv.sh more readable
  Fix patch-csv.sh so that it finds hub, image, and tag in newer Istio versions
  Ensure Primary-Remote e2e test is also skipped for 1.24 pre-release versions
  Print Istio CNI logs when test fails
  Temporarily disable RemoteIstio tests for 1.24+
  Make gen
  Add generics to EnqueueEventLogger and AdditionNotifierQueue
  Update Istio versions
  Remove reference to istiod-remote chart
  Ensure crd-all.gen.yaml file is found in newer and older Istio versions
  Add Helm artifacts publish automation (istio-ecosystem#385)
  Simplify supportedversion.go and add unit tests (istio-ecosystem#391)
  Clean up code (istio-ecosystem#392)
  Implement e2e dualStack data plane tests (istio-ecosystem#383)
  Fix error handling in deployBookinfo (istio-ecosystem#384)
  Adding default value for IP_FAMILY (istio-ecosystem#378)
  Update/Fix Istioctl links and docs (istio-ecosystem#349)
  Fix broken url for sample gateway (istio-ecosystem#377)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Oct 8, 2024
* upstream/main: (45 commits)
  Replace `manager` with `sail-operator` for the binary name
  Fix the update location for the rbac proxy
  Add the make clean target
  Improve kubectl utility in e2e tests (istio-ecosystem#394)
  Don't add istiod-remote chart when updating latest version (istio-ecosystem#396)
  Make patch-csv.sh more readable
  Fix patch-csv.sh so that it finds hub, image, and tag in newer Istio versions
  Ensure Primary-Remote e2e test is also skipped for 1.24 pre-release versions
  Print Istio CNI logs when test fails
  Temporarily disable RemoteIstio tests for 1.24+
  Make gen
  Add generics to EnqueueEventLogger and AdditionNotifierQueue
  Update Istio versions
  Remove reference to istiod-remote chart
  Ensure crd-all.gen.yaml file is found in newer and older Istio versions
  Add Helm artifacts publish automation (istio-ecosystem#385)
  Simplify supportedversion.go and add unit tests (istio-ecosystem#391)
  Clean up code (istio-ecosystem#392)
  Implement e2e dualStack data plane tests (istio-ecosystem#383)
  Fix error handling in deployBookinfo (istio-ecosystem#384)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Oct 9, 2024
* upstream/main: (45 commits)
  Replace `manager` with `sail-operator` for the binary name
  Fix the update location for the rbac proxy
  Add the make clean target
  Improve kubectl utility in e2e tests (istio-ecosystem#394)
  Don't add istiod-remote chart when updating latest version (istio-ecosystem#396)
  Make patch-csv.sh more readable
  Fix patch-csv.sh so that it finds hub, image, and tag in newer Istio versions
  Ensure Primary-Remote e2e test is also skipped for 1.24 pre-release versions
  Print Istio CNI logs when test fails
  Temporarily disable RemoteIstio tests for 1.24+
  Make gen
  Add generics to EnqueueEventLogger and AdditionNotifierQueue
  Update Istio versions
  Remove reference to istiod-remote chart
  Ensure crd-all.gen.yaml file is found in newer and older Istio versions
  Add Helm artifacts publish automation (istio-ecosystem#385)
  Simplify supportedversion.go and add unit tests (istio-ecosystem#391)
  Clean up code (istio-ecosystem#392)
  Implement e2e dualStack data plane tests (istio-ecosystem#383)
  Fix error handling in deployBookinfo (istio-ecosystem#384)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Oct 9, 2024
* upstream/main: (45 commits)
  Replace `manager` with `sail-operator` for the binary name
  Fix the update location for the rbac proxy
  Add the make clean target
  Improve kubectl utility in e2e tests (istio-ecosystem#394)
  Don't add istiod-remote chart when updating latest version (istio-ecosystem#396)
  Make patch-csv.sh more readable
  Fix patch-csv.sh so that it finds hub, image, and tag in newer Istio versions
  Ensure Primary-Remote e2e test is also skipped for 1.24 pre-release versions
  Print Istio CNI logs when test fails
  Temporarily disable RemoteIstio tests for 1.24+
  Make gen
  Add generics to EnqueueEventLogger and AdditionNotifierQueue
  Update Istio versions
  Remove reference to istiod-remote chart
  Ensure crd-all.gen.yaml file is found in newer and older Istio versions
  Add Helm artifacts publish automation (istio-ecosystem#385)
  Simplify supportedversion.go and add unit tests (istio-ecosystem#391)
  Clean up code (istio-ecosystem#392)
  Implement e2e dualStack data plane tests (istio-ecosystem#383)
  Fix error handling in deployBookinfo (istio-ecosystem#384)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Oct 9, 2024
* upstream/main: (45 commits)
  Replace `manager` with `sail-operator` for the binary name
  Fix the update location for the rbac proxy
  Add the make clean target
  Improve kubectl utility in e2e tests (istio-ecosystem#394)
  Don't add istiod-remote chart when updating latest version (istio-ecosystem#396)
  Make patch-csv.sh more readable
  Fix patch-csv.sh so that it finds hub, image, and tag in newer Istio versions
  Ensure Primary-Remote e2e test is also skipped for 1.24 pre-release versions
  Print Istio CNI logs when test fails
  Temporarily disable RemoteIstio tests for 1.24+
  Make gen
  Add generics to EnqueueEventLogger and AdditionNotifierQueue
  Update Istio versions
  Remove reference to istiod-remote chart
  Ensure crd-all.gen.yaml file is found in newer and older Istio versions
  Add Helm artifacts publish automation (istio-ecosystem#385)
  Simplify supportedversion.go and add unit tests (istio-ecosystem#391)
  Clean up code (istio-ecosystem#392)
  Implement e2e dualStack data plane tests (istio-ecosystem#383)
  Fix error handling in deployBookinfo (istio-ecosystem#384)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Oct 9, 2024
* upstream/main: (45 commits)
  Replace `manager` with `sail-operator` for the binary name
  Fix the update location for the rbac proxy
  Add the make clean target
  Improve kubectl utility in e2e tests (istio-ecosystem#394)
  Don't add istiod-remote chart when updating latest version (istio-ecosystem#396)
  Make patch-csv.sh more readable
  Fix patch-csv.sh so that it finds hub, image, and tag in newer Istio versions
  Ensure Primary-Remote e2e test is also skipped for 1.24 pre-release versions
  Print Istio CNI logs when test fails
  Temporarily disable RemoteIstio tests for 1.24+
  Make gen
  Add generics to EnqueueEventLogger and AdditionNotifierQueue
  Update Istio versions
  Remove reference to istiod-remote chart
  Ensure crd-all.gen.yaml file is found in newer and older Istio versions
  Add Helm artifacts publish automation (istio-ecosystem#385)
  Simplify supportedversion.go and add unit tests (istio-ecosystem#391)
  Clean up code (istio-ecosystem#392)
  Implement e2e dualStack data plane tests (istio-ecosystem#383)
  Fix error handling in deployBookinfo (istio-ecosystem#384)
  ...
openshift-service-mesh-bot pushed a commit to openshift-service-mesh-bot/sail-operator that referenced this pull request Oct 9, 2024
* upstream/main: (46 commits)
  Create GH Action for update-deps (istio-ecosystem#393)
  Replace `manager` with `sail-operator` for the binary name
  Fix the update location for the rbac proxy
  Add the make clean target
  Improve kubectl utility in e2e tests (istio-ecosystem#394)
  Don't add istiod-remote chart when updating latest version (istio-ecosystem#396)
  Make patch-csv.sh more readable
  Fix patch-csv.sh so that it finds hub, image, and tag in newer Istio versions
  Ensure Primary-Remote e2e test is also skipped for 1.24 pre-release versions
  Print Istio CNI logs when test fails
  Temporarily disable RemoteIstio tests for 1.24+
  Make gen
  Add generics to EnqueueEventLogger and AdditionNotifierQueue
  Update Istio versions
  Remove reference to istiod-remote chart
  Ensure crd-all.gen.yaml file is found in newer and older Istio versions
  Add Helm artifacts publish automation (istio-ecosystem#385)
  Simplify supportedversion.go and add unit tests (istio-ecosystem#391)
  Clean up code (istio-ecosystem#392)
  Implement e2e dualStack data plane tests (istio-ecosystem#383)
  ...
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.

4 participants