Add proxy protocol support for tunnel servers#172
Add proxy protocol support for tunnel servers#172welteki wants to merge 1 commit intoinlets:masterfrom
Conversation
This comment has been minimized.
This comment has been minimized.
1b50633 to
39672c7
Compare
This comment has been minimized.
This comment has been minimized.
39672c7 to
e8b8fd4
Compare
This comment has been minimized.
This comment has been minimized.
ead9d52 to
99061fc
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Add support for configuring proxy protocol on inlets tunnel servers provisioned by the operator. When enabled, the tunnel server is started with the --proxy-proto flag so that the original client IP address is preserved and forwarded to upstream services. The proxy protocol can be set per-service using the operator.inlets.dev/proxy-proto annotation. Configuration options: - Annotation: operator.inlets.dev/proxy-proto (per-service) Note: CRD has been updated with a new field. Signed-off-by: Han Verstraete (OpenFaaS Ltd) <han@openfaas.com> Signed-off-by: Alex Ellis (OpenFaaS Ltd) <alexellis2@gmail.com>
99061fc to
2c065cf
Compare
AI Pull Request OverviewSummary
Approval rating (1-10)7 - Solid implementation with good testing, but lacks comprehensive validation and potential for runtime errors if invalid proxyProto values are passed to inlets-pro. Summary per fileSummary per file
Overall AssessmentThe changes implement proxy protocol support effectively, with opt-in configuration per service. The renaming improves code clarity, and testing covers the new functionality. However, validation is limited to annotation values during tunnel creation, potentially allowing invalid proxyProto values to reach inlets-pro. The immutability of the setting after VM provisioning is clearly documented, reducing migration risks. No regressions expected for existing users as the feature is disabled by default. Security impact is minimal since proxy protocol is opt-in and preserves IPs as intended. Detailed ReviewDetailed ReviewDockerfile
README.md
chart/inlets-operator/crds/operator.inlets.dev_tunnels.yaml
config.go
config_test.go
controller.go
image_test.go
main.go
pkg/apis/inletsoperator/v1alpha1/types.go
userdata.go
userdata_test.go
validate.go
Risks and Recommendations:
AI agent details. |
Description
Add support for configuring proxy protocol on inlets tunnel servers provisioned by the operator.
The proxy protocol can be set per-service:
operator.inlets.dev/proxy-proto(per-service override, takes precedence over the global flag)Accepted values are
v1,v2, or empty (disabled).How Has This Been Tested?
Unit tests have been added for input validation. The operator has been tested E2E with the proxy protocol annotation
operator.inlets.dev/proxy-proto="v2". Verified a tunnel server with the correct proxy protocol version got created.How are existing users impacted? What migration steps/scripts do we need?
No impact on existing users. Proxy protocol is disabled by default. Users opt-in by setting the flag, Helm value, or annotation.
Checklist:
I have:
git commit -s