Skip to content

migrated all code to envoyproxy/envoy and keep e2e only here#6748

Open
wbpcode wants to merge 14 commits intoistio:masterfrom
wbpcode:dev-remove-all-source-code
Open

migrated all code to envoyproxy/envoy and keep e2e only here#6748
wbpcode wants to merge 14 commits intoistio:masterfrom
wbpcode:dev-remove-all-source-code

Conversation

@wbpcode
Copy link
Contributor

@wbpcode wbpcode commented Jan 5, 2026

What this PR does / why we need it:

Now, all source code will be hold by the envoyproxy/envoy.

The are mainly two points I want to address by this change:

  • For Istio self,to avoid constant merging and fixing when upgrading upstream Envoy. There's no stable ABI, so it can be breaking frequently.
  • For users/developers who care Envoy based mesh and gateway, they now could follow the unified singe repo for data plane.

There are only 3-4 extensions in this repo and migrating them to upstream's repo have no any effect to our users or our CI/release procedures because extensions's position doesn't affect the compiled result.

Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #

Special notes for your reviewer:

krinkinmu and others added 8 commits January 5, 2026 11:25
Signed-off-by: Mikhail Krinkin <mkrinkin@microsoft.com>
Signed-off-by: Mikhail Krinkin <mkrinkin@microsoft.com>
Signed-off-by: Mikhail Krinkin <mkrinkin@microsoft.com>
Signed-off-by: Mikhail Krinkin <mkrinkin@microsoft.com>
Signed-off-by: Mikhail Krinkin <mkrinkin@microsoft.com>
Signed-off-by: Mikhail Krinkin <mkrinkin@microsoft.com>
Signed-off-by: Mikhail Krinkin <mkrinkin@microsoft.com>
Signed-off-by: wbpcode <wbphub@gmail.com>
@wbpcode wbpcode requested a review from a team as a code owner January 5, 2026 03:26
@istio-policy-bot
Copy link

🤔 🐛 You appear to be fixing a bug in Go code, yet your PR doesn't include updates to any test files. Did you forget to add a test?

Courtesy of your friendly test nag.

@istio-policy-bot
Copy link

😊 Welcome @wbpcode! This is either your first contribution to the Istio proxy repo, or it's been
a while since you've been here.

You can learn more about the Istio working groups, Code of Conduct, and contribution guidelines
by referring to Contributing to Istio.

Thanks for contributing!

Courtesy of your friendly welcome wagon.

@istio-testing istio-testing added size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. needs-ok-to-test labels Jan 5, 2026
@istio-testing
Copy link
Collaborator

Hi @wbpcode. 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.

@wbpcode
Copy link
Contributor Author

wbpcode commented Jan 5, 2026

Waiting #6726 to be merged first because we need to ensure the CI works fine before this cleanup.

@wbpcode
Copy link
Contributor Author

wbpcode commented Jan 5, 2026

cc @kyessenov cc @zirain

@zirain
Copy link
Member

zirain commented Jan 5, 2026

/ok-to-test

@istio-testing istio-testing added ok-to-test Set this label allow normal testing to take place for a PR not submitted by an Istio org member. and removed needs-ok-to-test labels Jan 5, 2026
Signed-off-by: wbpcode <wbphub@gmail.com>
Signed-off-by: wbpcode <wbphub@gmail.com>
Signed-off-by: wbpcode <wbphub@gmail.com>
@keithmattix keithmattix added the do-not-merge/hold Block automatic merging of a PR. label Jan 5, 2026
@keithmattix keithmattix self-assigned this Jan 5, 2026
@keithmattix
Copy link
Contributor

Thanks for the PR. This is a pretty big change that I hadn’t been made aware of. We definitely will need some more discussion here

@wbpcode
Copy link
Contributor Author

wbpcode commented Jan 5, 2026

Thanks for the PR. This is a pretty big change that I hadn’t been made aware of. We definitely will need some more discussion here

Sure. This change comes from envoyproxy/envoy#29681 to free us/distributors out from constant merge and CI problems.

And at envoyproxy/envoy#42785, we have migrated all proxy extensions to envoy repo, without change any logic or API. (We updated Envoy's tool to make sure it could accept istio's API style.)

This PR try to build proxy with code in the Envoy repo and remove the code that have been migrated.

Ideally, there should no any aware-able change for users.

@wbpcode
Copy link
Contributor Author

wbpcode commented Jan 5, 2026

/retest

load("@llvm_toolchain//:toolchains.bzl", "llvm_register_toolchains")

envoy_toolchains()
llvm_register_toolchains()
Copy link
Contributor

Choose a reason for hiding this comment

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

is this making some build changes?
CC @krinkinmu

Copy link
Contributor

Choose a reason for hiding this comment

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

I'm probably overlooking something, but calling envoy_toolchains() + llvm_register_toolchains() should be enough here as far as I understand.

FWIW, I did the same in my PR migrating to hermetic toolchain, but I think it was just an artifact from my experiments that I didn't cleanup.

Copy link
Contributor

@kyessenov kyessenov left a comment

Choose a reason for hiding this comment

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

SG, I think it would be good to add some other people to contrib/istio owners in Envoy (@keithmattix ?). I don't think the location of the code matters that much.

@wbpcode
Copy link
Contributor Author

wbpcode commented Jan 5, 2026

SG, I think it would be good to add some other people to contrib/istio owners in Envoy (@keithmattix ?). I don't think the location of the code matters that much.

Sure. I will update the code owner list.

@keithmattix
Copy link
Contributor

Need a rebase here and need to discuss again with stakeholders. We talked about it in last week's community call, and I think the biggest questions were around the implications of having istio code owned by those who aren't istio maintainers plus having different degrees of testing in different places (istio/proxy, envoy, and istio/istio)

@zirain
Copy link
Member

zirain commented Jan 15, 2026

Need a rebase here and need to discuss again with stakeholders. We talked about it in last week's community call, and I think the biggest questions were around the implications of having istio code owned by those who aren't istio maintainers plus having different degrees of testing in different places (istio/proxy, envoy, and istio/istio)

having istio code owned by those who aren't istio maintainers

I think we already add all the guys from E&T WG into codeowners in envoy group.

having different degrees of testing in different places

I would say new feature and new test cases will be added in envoy repo, if there're some addtional e2e test case, it could be happen here.

@istio-testing istio-testing removed the needs-rebase Indicates a PR needs to be rebased before being merged label Jan 15, 2026
Signed-off-by: wbpcode <wbphub@gmail.com>
@wbpcode
Copy link
Contributor Author

wbpcode commented Jan 15, 2026

/retest

@keithmattix
Copy link
Contributor

Please let's bring this up one last time in a community meeting before moving forward

@zirain
Copy link
Member

zirain commented Jan 15, 2026

Please let's bring this up one last time in a community meeting before moving forward

don't worry, there's a DNM, it won't be merged.

@istio-testing istio-testing added the needs-rebase Indicates a PR needs to be rebased before being merged label Jan 18, 2026
Signed-off-by: wbpcode <wbphub@gmail.com>
@istio-testing istio-testing added needs-rebase Indicates a PR needs to be rebased before being merged and removed needs-rebase Indicates a PR needs to be rebased before being merged labels Jan 18, 2026
@istio-testing
Copy link
Collaborator

PR needs rebase.

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.

@keithmattix
Copy link
Contributor

FYI, we discussed this in the latest WG meeting; I captured the high level points here: https://docs.google.com/document/d/1wsa06GGiq1LEGwhkiPP0FKIZJqdAiue-VeBonWAzAyk/edit?pli=1&tab=t.0#heading=h.gp28tf83n5tk

@wbpcode
Copy link
Contributor Author

wbpcode commented Jan 23, 2026

Consensus: need to answer if the problem we’re solving is worth it, but generally felt like folks were on board if the integration tests could be ported to envoy as well

cc @keithmattix

Although I think even we never move the e2e, this still make sense to simplify our and distributors' life. But sure I completely agree it would make more sense to avoid all these e2e here.

But I think we may needn't to do this in one punch? Rather than the migration, my plan is keep the e2e here, and at next 1-2 release cycle, we will add more unit/integration tests in the Envoy, to ensure all these filters in the Envoy could have similar test quality with other core filters (96.6% coverage).
Then, another 1-2 release cycles, we can remove all e2e tests here also?

By this way, this whole process will be more smoothy and we can have more confidence to the change?

@dhawton
Copy link
Member

dhawton commented Jan 23, 2026

Consensus: need to answer if the problem we’re solving is worth it, but generally felt like folks were on board if the integration tests could be ported to envoy as well

cc @keithmattix

Although I think even we never move the e2e, this still make sense to simplify our and distributors' life. But sure I completely agree it would make more sense to avoid all these e2e here.

But I think we may needn't to do this in one punch? Rather than the migration, my plan is keep the e2e here, and at next 1-2 release cycle, we will add more unit/integration tests in the Envoy, to ensure all these filters in the Envoy could have similar test quality with other core filters (96.6% coverage). Then, another 1-2 release cycles, we can remove all e2e tests here also?

By this way, this whole process will be more smoothy and we can have more confidence to the change?

But this doesn't really identify the problem, at least for me. What problem are we solving?

From what John said, the original intent on this change was a step toward the effort to migrate to using a straight Envoy binary, but that is no longer the plan.

@keithmattix
Copy link
Contributor

this still make sense to simplify our and distributors' life.

This feels like the problem statement; can we get more details on how this makes things simpler? And are there other benefits?

@wbpcode
Copy link
Contributor Author

wbpcode commented Jan 23, 2026

cc @dhawton

Hello, @dhawton, What problem are we solving? This problem actually has been discussed before in this PR. So I focused on the e2e.

But maybe there is too much context and I should put related information at the PR description.

The are mainly two points I want to address:

  • For Istio self,to avoid constant merging and fixing when upgrading upstream Envoy. There's no stable ABI, so it can be breaking frequently.
  • For users/developers who care Envoy based mesh and gateway, they now could follow the unified singe repo for data plane.

There are only 3-4 extensions in this repo and migrating them to upstream's repo have no any effect to our users or our CI/release procedures because extensions's position doesn't affect the compiled result.

This change could make the cooperation a little more smoothy and have no side effect. So, from my perspective, it's more like a why not?

@wbpcode
Copy link
Contributor Author

wbpcode commented Feb 3, 2026

this still make sense to simplify our and distributors' life.

This feels like the problem statement; can we get more details on how this makes things simpler? And are there other benefits?

Hello, @keithmattix , sorry I missed your comment before. But I think the #6748 (comment) also responded your question, hope that make sense for you.

Is there anything still block this change? If it make sense, we actually need to remigrate recent change to Envoy repo and resolve all these conflict.

@keithmattix
Copy link
Contributor

This change could make the cooperation a little more smoothy and have no side effect. So, from my perspective, it's more like a why not?

I think the hesitation I have is that there is a side effect as it stands today: the code and the tests get separated. That's why where I am is that I'm ok with the move if and only if e2e tests move too. I totally agree with the benefits, but we need to weigh the costs

@zirain
Copy link
Member

zirain commented Feb 3, 2026

This change could make the cooperation a little more smoothy and have no side effect. So, from my perspective, it's more like a why not?

I think the hesitation I have is that there is a side effect as it stands today: the code and the tests get separated. That's why where I am is that I'm ok with the move if and only if e2e tests move too. I totally agree with the benefits, but we need to weigh the costs

I think the migration of all the e2e tests is impossible today, and I don't think anyone have bandwidth to do it.
It sounds good to me that we keep all the existing e2e here, and new features will require UT and e2e on envoy usptream.
do this make sense to you?

If not, I think the best choice is keep it as today, and we maybe need to remove all the code from envoy upstream to make user not too confuse.

@wbpcode
Copy link
Contributor Author

wbpcode commented Feb 3, 2026

cc @keithmattix

But I think we may needn't to do this in one punch? Rather than the migration, my plan is 
keep the e2e here, 
and at next 1-2 release cycle, we will add more unit/integration tests in the Envoy, to ensure
all these filters
in the Envoy could have similar test quality with other core filters (96.6% coverage).
Then, another 1-2 release cycles, we can remove all e2e tests here also?

is this way make sense for you? Keep the e2e here for a while and finally, all these e2e tests will be replaced by the unit tests and integration tests in the Envoy. Migrating the e2e self is impossible for Envoy because we have no plan to accept another testing system.

If we finally could done it. All distributors and developers could get a unique place to follow data plane source code. And data plane upgrading, CVE fixing for Istio would be easier.

@keithmattix
Copy link
Contributor

To be clear: we don't have to use the current testing framework; we just need to cover the same functionality

@wbpcode
Copy link
Contributor Author

wbpcode commented Feb 3, 2026

To be clear: we don't have to use the current testing framework; we just need to cover the same functionality

This sound possible. And if you want all these tests be there before migration. I can give it a try.

@krinkinmu
Copy link
Contributor

This sound possible. And if you want all these tests be there before migration. I can give it a try.

For me at least it does not matter if we will have the same tests coverage right from the start in the Envoy repo, but I'd like us to agree on a feasible path forward. The plan of phasing out the current tests and replacing them with equivalent tests in the envoy repo sounds ok to me.

I'd also be fine with patching in Istio CI into the Envoy CI for Istio filters and not migrating the tests, though I'm not sure if that's possible currently.

@wbpcode
Copy link
Contributor Author

wbpcode commented Feb 3, 2026

I'd also be fine with patching in Istio CI into the Envoy CI for Istio filters and not migrating the tests, though I'm not sure if that's possible currently.

This is a little hard I think 🤔

For me at least it does not matter if we will have the same tests coverage right from the start in the Envoy repo, but I'd like us to agree on a feasible path forward. The plan of phasing out the current tests and replacing them with equivalent tests in the envoy repo sounds ok to me.

Thanks very much. I also prefer gradually replacement of the tests. And I think even we have added same tests in Envoy, the e2e here still should be kept for one or tow release cycles to ensure nothing is broken.

Anyway, I can try to add more tests first to address @keithmattix 's concern.

@keithmattix
Copy link
Contributor

If we could start with just a POC of a couple of tests to prove it can be done, I think that would be all I need personally.

@dhawton @jaellio @howardjohn from the product security side, would this help alleviate some concern? I think from the security side, we could always fix with patches right (since I don't think contrib is under envoy security)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/hold Block automatic merging of a PR. needs-rebase Indicates a PR needs to be rebased before being merged ok-to-test Set this label allow normal testing to take place for a PR not submitted by an Istio org member. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants