Skip to content

Conversation

dawid-nowak
Copy link
Contributor

Kubvernor Rust API Gateway is an open-source, highly experimental implementation of API controller in Rust programming language. Currently, Kubernor supports Envoy Proxy. The project aims to be as generic as possible so Kubvernor can be used to manage/deploy different gateways (Envoy, Nginx, HAProxy, etc.). Kubvernor Rust API Gateway implements Inference Extensions v0.5.1.

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Aug 6, 2025
Copy link

netlify bot commented Aug 6, 2025

Deploy Preview for gateway-api-inference-extension ready!

Name Link
🔨 Latest commit 2847818
🔍 Latest deploy log https://app.netlify.com/projects/gateway-api-inference-extension/deploys/68b9f1a715f1e50008c6b438
😎 Deploy Preview https://deploy-preview-1313--gateway-api-inference-extension.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@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 Aug 6, 2025
@k8s-ci-robot
Copy link
Contributor

Hi @dawid-nowak. 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.

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 the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Aug 6, 2025
@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 13, 2025
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 13, 2025
@dawid-nowak
Copy link
Contributor Author

ping @danehans @liu-cong

@dawid-nowak
Copy link
Contributor Author

ping @robscott

@robscott
Copy link
Member

Thanks @dawid-nowak!

/lgtm
/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 Aug 15, 2025
@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Aug 15, 2025
@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 23, 2025
Signed-off-by: Dawid Nowak <[email protected]>
@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Aug 25, 2025
@k8s-ci-robot
Copy link
Contributor

New changes are detected. LGTM label has been removed.

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

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

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

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 removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Aug 25, 2025
Signed-off-by: Dawid Nowak <[email protected]>
@dawid-nowak
Copy link
Contributor Author

pretty please, could we move it forward...
@nirrozenbaum @robscott @liu-cong

@robscott
Copy link
Member

This PR follows what we have been doing up to this point as a project (implementation-specific guides), but per #1502 we likely need to start moving away from that. Given that we already have this level of content for many other implementations, it could be viable to accept this as is and then immediately work to retract implementation-specific content more broadly.

@dawid-nowak
Copy link
Contributor Author

@liu-cong @nirrozenbaum @danehans Don't leave me hanging 😃
Given Rob's comment above... Could we get it acepted or rejected?

@liu-cong
Copy link
Contributor

it could be viable to accept this as is and then immediately work to retract implementation-specific content more broadly.

+1 on this. Deferring to @danehans and @nirrozenbaum to make the call

[Kubvernor Rust API Gateway](https://github.com/kubvernor/kubvernor) is a higly experimental project so not ready for production but it supports version v0.5.1 of Inference Extension Spec.

1. Requirements
- Rust and Cargo installed
Copy link
Contributor

Choose a reason for hiding this comment

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

A user should not be required to install Rust to deploy a GIE gateway. Common deployment tools such as kubectl, Helm, etc., should be the only requirement for a user to deploy.

1. Requirements
- Rust and Cargo installed

2. Run Kubvernor Rust API Gateway as documented in [README](https://github.com/kubvernor/kubvernor/blob/main/README.md)
Copy link
Contributor

Choose a reason for hiding this comment

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

All required steps should be captured here instead of an external link

Note: Due to #1502, we plan on removing most 3rd party content from the docs site. We will instead refer to the implementations page. Conformant implementations will be required to maintain their own install guides.

Copy link
Contributor

Choose a reason for hiding this comment

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

I followed the referenced readme but the ./run_kubvernor.sh step failed:

$ rustc --version
rustc 1.89.0 (29483883e 2025-08-04)
$ cargo version
cargo 1.89.0 (c24e10642 2025-06-23)
$ echo $CONTROL_PLANE_IP
172.18.0.2
$ ./run_kubvernor.sh
...
  --- stderr
  Error: Custom { kind: Other, error: "protoc failed: google/protobuf/timestamp.proto: File not found.\ngoogle/protobuf/descriptor.proto: File not found.\nudpa/annotations/status.proto: Import \"google/protobuf/descriptor.proto\" was not found or had errors.\nudpa/annotations/status.proto:15:8: \"google.protobuf.FileOptions\" is not defined.\nudpa/annotations/versioning.proto: Import \"google/protobuf/descriptor.proto\" was not found or had errors.\nudpa/annotations/versioning.proto:13:8: \"google.protobuf.MessageOptions\" is not defined.\nenvoy/admin/v3/certs.proto: Import \"google/protobuf/timestamp.proto\" was not found or had errors.\nenvoy/admin/v3/certs.proto: Import \"udpa/annotations/status.proto\" was not found or had errors.\nenvoy/admin/v3/certs.proto: Import \"udpa/annotations/versioning.proto\" was not found or had errors.\nenvoy/admin/v3/certs.proto:45:5: \"google.protobuf.Timestamp\" is not defined.\nenvoy/admin/v3/certs.proto:48:5: \"google.protobuf.Timestamp\" is not defined.\nenvoy/admin/v3/certs.proto:64:3: \"google.protobuf.Timestamp\" is not defined.\nenvoy/admin/v3/certs.proto:67:3: \"google.protobuf.Timestamp\" is not defined.\n" }
warning: build failed, waiting for other jobs to finish...

This is a good example of why https://github.com/kubernetes-sigs/gateway-api-inference-extension/pull/1313/files#r2316592252.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

All required steps should be captured here instead of an external link

Note: Due to #1502, we plan on removing most 3rd party content from the docs site. We will instead refer to the implementations page. Conformant implementations will be required to maintain their own install guides.

Yeah, but that would potentially make this page even more unreadable. And even for GKE there is a link to external docs. Perhaps it is ok to proceed as is. Given that this is going to change anyway.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I followed the referenced readme but the ./run_kubvernor.sh step failed:

$ rustc --version
rustc 1.89.0 (29483883e 2025-08-04)
$ cargo version
cargo 1.89.0 (c24e10642 2025-06-23)
$ echo $CONTROL_PLANE_IP
172.18.0.2
$ ./run_kubvernor.sh
...
  --- stderr
  Error: Custom { kind: Other, error: "protoc failed: google/protobuf/timestamp.proto: File not found.\ngoogle/protobuf/descriptor.proto: File not found.\nudpa/annotations/status.proto: Import \"google/protobuf/descriptor.proto\" was not found or had errors.\nudpa/annotations/status.proto:15:8: \"google.protobuf.FileOptions\" is not defined.\nudpa/annotations/versioning.proto: Import \"google/protobuf/descriptor.proto\" was not found or had errors.\nudpa/annotations/versioning.proto:13:8: \"google.protobuf.MessageOptions\" is not defined.\nenvoy/admin/v3/certs.proto: Import \"google/protobuf/timestamp.proto\" was not found or had errors.\nenvoy/admin/v3/certs.proto: Import \"udpa/annotations/status.proto\" was not found or had errors.\nenvoy/admin/v3/certs.proto: Import \"udpa/annotations/versioning.proto\" was not found or had errors.\nenvoy/admin/v3/certs.proto:45:5: \"google.protobuf.Timestamp\" is not defined.\nenvoy/admin/v3/certs.proto:48:5: \"google.protobuf.Timestamp\" is not defined.\nenvoy/admin/v3/certs.proto:64:3: \"google.protobuf.Timestamp\" is not defined.\nenvoy/admin/v3/certs.proto:67:3: \"google.protobuf.Timestamp\" is not defined.\n" }
warning: build failed, waiting for other jobs to finish...

This is a good example of why https://github.com/kubernetes-sigs/gateway-api-inference-extension/pull/1313/files#r2316592252.

Thanks, I have updated Kubvernor README.

@danehans
Copy link
Contributor

danehans commented Sep 2, 2025

@dawid-nowak thanks for your patience with this PR while we've been focused on the v1.0 release candidate. Please take a look at my review feedback.

@k8s-ci-robot k8s-ci-robot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Sep 3, 2025
Signed-off-by: Dawid Nowak <[email protected]>
@dawid-nowak
Copy link
Contributor Author

@dawid-nowak thanks for your patience with this PR while we've been focused on the v1.0 release candidate. Please take a look at my review feedback.

@danehans Thanks again for the review.. I hope I have addressed your concerns.

@dawid-nowak dawid-nowak requested a review from danehans September 3, 2025 15:24
@dawid-nowak
Copy link
Contributor Author

/retest

@dawid-nowak
Copy link
Contributor Author

/retest-required

Copy link
Member

@robscott robscott left a comment

Choose a reason for hiding this comment

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

Thanks @dawid-nowak! LGTM except for the extra file.

Signed-off-by: Dawid Nowak <[email protected]>
@k8s-ci-robot k8s-ci-robot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Sep 4, 2025
@dawid-nowak dawid-nowak requested a review from robscott September 4, 2025 21:41
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. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants