Skip to content

Add NGINX provider support#224

Merged
k8s-ci-robot merged 29 commits intokubernetes-sigs:mainfrom
sarthyparty:nginx-provider
Aug 28, 2025
Merged

Add NGINX provider support#224
k8s-ci-robot merged 29 commits intokubernetes-sigs:mainfrom
sarthyparty:nginx-provider

Conversation

@sarthyparty
Copy link
Copy Markdown
Contributor

@sarthyparty sarthyparty commented Jul 7, 2025

What type of PR is this?

/kind feature
What this PR does / why we need it:
This PR adds support for NGINX provider.
Which issue(s) this PR fixes:

Fixes #223

Does this PR introduce a user-facing change?:

Adds support for the NGINX provider in ingress2gateway.

If this PR is too large, I'd be happy to break it into smaller chunks

@k8s-ci-robot k8s-ci-robot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. kind/feature Categorizes issue or PR as related to a new feature. labels Jul 7, 2025
@linux-foundation-easycla
Copy link
Copy Markdown

linux-foundation-easycla Bot commented Jul 7, 2025

CLA Signed

The committers listed above are authorized under a signed CLA.

@k8s-ci-robot k8s-ci-robot requested review from Xunzhuo and levikobi July 7, 2025 17:39
@k8s-ci-robot k8s-ci-robot added the cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. label Jul 7, 2025
@k8s-ci-robot
Copy link
Copy Markdown
Contributor

Welcome @sarthyparty!

It looks like this is your first PR to kubernetes-sigs/ingress2gateway 🎉. 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/ingress2gateway 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 Jul 7, 2025
@k8s-ci-robot
Copy link
Copy Markdown
Contributor

Hi @sarthyparty. Thanks for your PR.

I'm waiting for a kubernetes-sigs 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/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. and removed cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. labels Jul 7, 2025
@sarthyparty sarthyparty changed the title Add NGINX provider with partial annotation support Add NGINX provider Jul 7, 2025
@sarthyparty sarthyparty changed the title Add NGINX provider Add NGINX provider support Jul 7, 2025
@sarthyparty
Copy link
Copy Markdown
Contributor Author

Hey, sorry for the extremely large PR, I did not realize it was this large. I'm going to remove virtual server conversion code and some annotations that are not fully done to make it smaller. Feel free to toss any suggestions to break it into smaller chunks

@sarthyparty sarthyparty closed this Jul 7, 2025
@sarthyparty sarthyparty reopened this Jul 7, 2025
@sarthyparty
Copy link
Copy Markdown
Contributor Author

If this PR is still too large, I'd be happy to break it into smaller chunks

Copy link
Copy Markdown

@sjberman sjberman left a comment

Choose a reason for hiding this comment

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

Haven't gone through unit tests yet, but did a first pass of the implementation.

Comment thread pkg/i2gw/providers/nginx/annotations/README.md Outdated
Comment thread pkg/i2gw/providers/nginx/annotations/constants.go Outdated
Comment thread pkg/i2gw/providers/nginx/annotations/path_matching.go Outdated
Comment thread pkg/i2gw/providers/nginx/annotations/path_matching.go Outdated
Comment thread pkg/i2gw/providers/nginx/annotations/path_matching_test.go
Comment thread pkg/i2gw/providers/nginx/annotations/listen_ports.go Outdated
Comment thread pkg/i2gw/providers/nginx/annotations/listen_ports.go Outdated
Comment thread pkg/i2gw/providers/nginx/annotations/backend_protocol.go Outdated
Comment thread pkg/i2gw/providers/nginx/fixtures/annotations/output/nginx-grpc-services.yaml Outdated
@robscott
Copy link
Copy Markdown
Member

robscott commented Jul 8, 2025

This is great to see, thanks @sarthyparty! Ping me whenever this is ready for review.

/ok-to-test

@k8s-ci-robot k8s-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Jul 8, 2025
Comment thread pkg/i2gw/providers/nginx/annotations/path_rewrite.go Outdated
Comment thread pkg/i2gw/providers/nginx/annotations/listen_ports.go Outdated
Comment thread pkg/i2gw/providers/nginx/annotations/ssl_redirect.go Outdated
@sarthyparty sarthyparty requested a review from sjberman July 9, 2025 17:06
Comment thread pkg/i2gw/providers/nginx/annotations/backend_protocol.go Outdated
Comment thread pkg/i2gw/providers/nginx/resource_reader.go Outdated
Comment thread pkg/i2gw/providers/nginx/annotations/backend_protocol.go Outdated
Comment thread pkg/i2gw/providers/nginx/annotations/backend_protocol.go Outdated
Copy link
Copy Markdown

@sjberman sjberman left a comment

Choose a reason for hiding this comment

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

Approving from my point of view. I'll let others finish their reviews too in case there's anything else :) Nice work.

Copy link
Copy Markdown

@bjee19 bjee19 left a comment

Choose a reason for hiding this comment

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

lgtm, nice job

Copy link
Copy Markdown

@salonichf5 salonichf5 left a comment

Choose a reason for hiding this comment

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

🚀

@sjberman
Copy link
Copy Markdown

@levikobi @Xunzhuo You two are listed as reviewers on this PR. Would you be able to take a look or recommend someone else who has write access that can? We're hoping to get this in ASAP due to time constraints on our own team.

@LiorLieberman
Copy link
Copy Markdown
Member

LiorLieberman commented Aug 27, 2025 via email

@LiorLieberman
Copy link
Copy Markdown
Member

/assign

Copy link
Copy Markdown
Member

@LiorLieberman LiorLieberman left a comment

Choose a reason for hiding this comment

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

This is very well written, thanks for putting the time.

Left a few comments after my initial review (and yes, it is hard to review 58 files lol - but I dont think you need to split after all the time you've waited :) )

Comment thread pkg/i2gw/providers/nginx/fixtures/annotations/output/nginx-ssl-services.yaml Outdated
Comment thread pkg/i2gw/providers/nginx/fixtures/annotations/output/nginx-ssl-services.yaml Outdated
Comment thread pkg/i2gw/providers/nginx/annotations/README.md Outdated
Comment thread pkg/i2gw/providers/nginx/README.md Outdated
Comment thread pkg/i2gw/intermediate/intermediate_representation.go
Comment thread pkg/i2gw/providers/nginx/annotations/grpc_services.go Outdated
Comment thread pkg/i2gw/providers/nginx/annotations/ssl_services.go Outdated
Comment thread pkg/i2gw/providers/common/utils.go Outdated
Comment thread pkg/i2gw/providers/common/utils.go Outdated
Comment thread pkg/i2gw/providers/common/utils.go
Comment thread pkg/i2gw/providers/common/utils.go Outdated
Comment thread pkg/i2gw/providers/common/utils.go Outdated
@LiorLieberman
Copy link
Copy Markdown
Member

/lgtm
/approve

🎉

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Aug 28, 2025
@k8s-ci-robot
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: LiorLieberman, sarthyparty

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

The pull request process is described 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 k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Aug 28, 2025
@k8s-ci-robot k8s-ci-robot merged commit 162d11c into kubernetes-sigs:main Aug 28, 2025
4 checks passed
rajashish pushed a commit to rajashish/ingress2gateway1 that referenced this pull request Feb 21, 2026
* Add NGINX provider with annotation support

* add more test

* fix tls for custom ports

* update readme

* go mod tidy

* align table

* remove kubernetes from name

* link issue in annotations readme

* move issue link

* add notifications for grpcfilter conversion

* update grpc services test

* update error message to be clearer

* fix comments on header and rewrite

* rename test functions

* switch t error instead of t fatal

* clean tests

* rework tests to use error instead of fatal

* resolve comments

* Update banner to 2025

* Update readme, remove managed by labels

* set target ref for btp to be core

* update toir and merge irs

* move grpc and btp logic to common

* fix verify

* remove core group var

* Update comment and separate btp name gen function

* remove unecessary labels

* move btp name gen function to nginx provider

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

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/feature Categorizes issue or PR as related to a new feature. lgtm "Looks good to me", indicates that a PR is ready to be merged. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. 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.

Add NGINX Ingress Controller provider

8 participants