Skip to content

Feature Implement Unix Domain Socket based connectivity for Envoy->XDS server for gateway.#348

Open
ashishkpathak-connect wants to merge 1 commit into
kubernetes-sigs:mainfrom
ashishkpathak-connect:issue-309
Open

Feature Implement Unix Domain Socket based connectivity for Envoy->XDS server for gateway.#348
ashishkpathak-connect wants to merge 1 commit into
kubernetes-sigs:mainfrom
ashishkpathak-connect:issue-309

Conversation

@ashishkpathak-connect
Copy link
Copy Markdown

@ashishkpathak-connect ashishkpathak-connect commented Dec 26, 2025

Implement Unix Domain Socket based connectivity for Envoy to connect to XDS server for gateway.

Fixes #309

@k8s-ci-robot
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: ashishkpathak-connect
Once this PR has been reviewed and has the lgtm label, please assign bentheelder for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot
Copy link
Copy Markdown
Contributor

Welcome @ashishkpathak-connect!

It looks like this is your first PR to kubernetes-sigs/cloud-provider-kind 🎉. Please refer to our pull request process documentation to help your PR have a smooth ride to approval.

You will be prompted by a bot to use commands during the review process. Do not be afraid to follow the prompts! It is okay to experiment. Here is the bot commands documentation.

You can also check if kubernetes-sigs/cloud-provider-kind has its own contribution guidelines.

You may want to refer to our testing guide if you run into trouble with your tests not passing.

If you are having difficulty getting your pull request seen, please follow the recommended escalation practices. Also, for tips and tricks in the contribution process you may want to read the Kubernetes contributor cheat sheet. We want to make sure your contribution gets all the attention it needs!

Thank you, and welcome to Kubernetes. 😃

@k8s-ci-robot k8s-ci-robot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Dec 26, 2025
@k8s-ci-robot
Copy link
Copy Markdown
Contributor

Hi @ashishkpathak-connect. Thanks for your PR.

I'm waiting for a github.com member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@k8s-ci-robot k8s-ci-robot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Dec 26, 2025
@ashishkpathak-connect
Copy link
Copy Markdown
Author

ashishkpathak-connect commented Dec 26, 2025

Tests

Test -
cpk-uds-test.pdf

Ref - #309 (comment)

@aojea
Copy link
Copy Markdown
Contributor

aojea commented Dec 26, 2025

how will this work on windows or mac where the containers run in a vm ?

…teway XDS Server.

Implement Unix Domain Socket based connectivity for Envoy to connect to XDS server for gateway.

Updated tests
@ashishkpathak-connect
Copy link
Copy Markdown
Author

how will this work on windows or mac where the containers run in a vm ?

@aojea The test report(pdf) I've attached is from Mac itself. I am unsure how I can test for windows currently. Whats your view on this? It wouldn't work on windows? Can we somehow try testing this PR for windows?

@aojea
Copy link
Copy Markdown
Contributor

aojea commented Jan 5, 2026

here is the thing, cloud provider kind can run standalone in the host or as a container.
If you run the cloud provider kind in the mac, then somehow you need to mount those file descriptors from the containers vm into the mac host ... are you testing running cloud provider kind as a docker container in mac?

@ashishkpathak-connect
Copy link
Copy Markdown
Author

here is the thing, cloud provider kind can run standalone in the host or as a container. If you run the cloud provider kind in the mac, then somehow you need to mount those file descriptors from the containers vm into the mac host ... are you testing running cloud provider kind as a docker container in mac?

Thanks @aojea I was testing by running cloud-provider-kind on the Mac host by directly running the binary with root perms. I get your point now, if we run cpk as docker container and if we use Unix Domain Socket, then we need somehow to mount the socket to cpu container.
Apologies, I didnt think of the scenario when cpk is run as container. I always thought its invoked as a binary and designed/tested above based on that.

@aojea
Copy link
Copy Markdown
Contributor

aojea commented Jan 6, 2026

Apologies, I didnt think of the scenario when cpk is run as container. I always thought its invoked as a binary and designed/tested above based on that.

no worries, the project grew in scope based on user feedback and this seems to be a common case now, is normal most people skipped it, but I love this solution based on sharing the unix domain socket, wonder if we can generalize it 🤔

@ashishkpathak-connect
Copy link
Copy Markdown
Author

Apologies, I didnt think of the scenario when cpk is run as container. I always thought its invoked as a binary and designed/tested above based on that.

no worries, the project grew in scope based on user feedback and this seems to be a common case now, is normal most people skipped it, but I love this solution based on sharing the unix domain socket, wonder if we can generalize it 🤔

With Generalize, were you referring to be able to use this solution across windows, Mac, linux + host/container right? Do you have any ideas?

@aojea
Copy link
Copy Markdown
Contributor

aojea commented Jan 8, 2026

With Generalize, were you referring to be able to use this solution across windows, Mac, linux + host/container right? Do you have any ideas?

that is the tricky problem, people expect the project to work in any environment, so we can not develop a feature that only works in some of them or we break the others ... the reverse tunnel should work because we can expose ports from the container, so we are able to connect to specific ports in the containers from the host

@ashishkpathak-connect
Copy link
Copy Markdown
Author

With Generalize, were you referring to be able to use this solution across windows, Mac, linux + host/container right? Do you have any ideas?

that is the tricky problem, people expect the project to work in any environment, so we can not develop a feature that only works in some of them or we break the others ... the reverse tunnel should work because we can expose ports from the container, so we are able to connect to specific ports in the containers from the host

Totally agreed @aojea
Reviewing the doc https://www.envoyproxy.io/docs/envoy/latest/configuration/other_features/reverse_tunnel carefully,
it doesn't seem to provide ReverseTunnel connectivity for xDS. Reverse Tunnel is for data connectivity b/w two envoy and not for xDS protocol.

In our case, we have setup like below
Envoy ---(XDS)--- Gateway server

As per my understanding for our setup, wherein we want to expose a port of Envoy and GatewayServer to make a gRPC dialup to Envoy's port which then Envoy uses it as a reverse connection for xDS is not possible currently.

@aojea
Copy link
Copy Markdown
Contributor

aojea commented Jan 9, 2026

it doesn't seem to provide ReverseTunnel connectivity for xDS.

well, these are network tunnels and I was wondering if envoy dataplane is able to reverse tunnel any kind of traffic, I was assuming envoy will not have a real notion if it is its own traffic or not ... then it may work

@k8s-triage-robot
Copy link
Copy Markdown

The Kubernetes project currently lacks enough contributors to adequately respond to all PRs.

This bot triages PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the PR is closed

You can:

  • Mark this PR as fresh with /remove-lifecycle stale
  • Close this PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Apr 9, 2026
@k8s-triage-robot
Copy link
Copy Markdown

The Kubernetes project currently lacks enough active contributors to adequately respond to all PRs.

This bot triages PRs according to the following rules:

  • After 90d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, lifecycle/rotten is applied
  • After 30d of inactivity since lifecycle/rotten was applied, the PR is closed

You can:

  • Mark this PR as fresh with /remove-lifecycle rotten
  • Close this PR with /close
  • Offer to help out with Issue Triage

Please send feedback to sig-contributor-experience at kubernetes/community.

/lifecycle rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels May 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Gateway XDS Server resilience

4 participants