Skip to content

gateway-controller: envoy xDS and policy xDS mutual TLS support - #3328

Open
tharindu1st wants to merge 1 commit into
wso2:mainfrom
tharindu1st:envoy-xds-mtls-support
Open

gateway-controller: envoy xDS and policy xDS mutual TLS support#3328
tharindu1st wants to merge 1 commit into
wso2:mainfrom
tharindu1st:envoy-xds-mtls-support

Conversation

@tharindu1st

Copy link
Copy Markdown
Contributor

Summary

  • Extracted from support PQC supported ciphers and ECDH curves from envoy #3222: the envoy/policy xDS-related changes only.
  • Adds mutual TLS to the main Envoy-facing xDS server (server.xds_tls) and the policy-engine-facing policy xDS server (policy_server.tls), both configured via the shared XDSServerTLSConfig shape (PQC-capable cipher/curve config, off by default).
  • Adds pkg/tlsauth for verifying the mTLS peer identity against an allowlist.
  • Adds policy-engine's xdsclient-side TLS support so it can connect to the now-mTLS-capable policy xDS server.
  • Also brings in pkg/config/server_tls.go and gateway-runtime/policy-engine/internal/config/admin_tls.go as prerequisites — these are pure TLS-parsing utility functions (cipher/curve/version parsing) shared with the REST-API-TLS work in support PQC supported ciphers and ECDH curves from envoy #3222, not REST-API-specific themselves.
  • Deliberately excluded: the REST management API TLS listener itself (server.tls, cmd/controller/server_tls.go) and gateway/configs/config-template.toml documentation — those belong to the REST API TLS PR being extracted separately, and the template doc for xds_tls/policy_server.tls is interleaved with that REST TLS doc in a way that isn't cleanly splittable without hand-editing docs.

Merge-order note

Test plan

  • go build ./..., go vet ./..., go test ./... pass for gateway/gateway-controller
  • go build ./..., go vet ./..., go test ./... pass for gateway/gateway-runtime/policy-engine

Adds PQC-capable mutual TLS to both xDS gRPC servers: the main
Envoy-facing xDS server (server.xds_tls) and the policy-engine-facing
policy xDS server (policy_server.tls), reusing the same
XDSServerTLSConfig shape and BuildXDSServerTLSConfig/ValidateXDSServerTLS
helpers for both. Includes peer identity verification (tlsauth) for
mTLS client allowlisting, and the policy-engine xdsclient-side TLS
support to connect to the now-mTLS-capable policy xDS server.

Extracted from PR wso2#3222.
@coderabbitai

coderabbitai Bot commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

Next included review available in 47 minutes.

View limit details

Limit details: You’ve used the included review currently available.

This review ran on the open-source allowance, not this organization's plan, because the pull request author doesn't have an assigned seat. Waiting won't change this — ask an organization admin to assign them a seat, or add seats in Billing if every seat is already assigned, then retry.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: d7b27b1b-6644-426a-a507-defbc5634f76

📥 Commits

Reviewing files that changed from the base of the PR and between 0134cd7 and c8c9354.

📒 Files selected for processing (18)
  • gateway/gateway-controller/cmd/controller/main.go
  • gateway/gateway-controller/pkg/config/config.go
  • gateway/gateway-controller/pkg/config/server_tls.go
  • gateway/gateway-controller/pkg/config/xds_tls.go
  • gateway/gateway-controller/pkg/config/xds_tls_test.go
  • gateway/gateway-controller/pkg/policyxds/server.go
  • gateway/gateway-controller/pkg/policyxds/server_test.go
  • gateway/gateway-controller/pkg/tlsauth/peer_identity.go
  • gateway/gateway-controller/pkg/tlsauth/peer_identity_test.go
  • gateway/gateway-controller/pkg/xds/server.go
  • gateway/gateway-controller/pkg/xds/snapshot.go
  • gateway/gateway-controller/pkg/xds/translator.go
  • gateway/gateway-controller/pkg/xds/translator_test.go
  • gateway/gateway-runtime/policy-engine/internal/config/admin_tls.go
  • gateway/gateway-runtime/policy-engine/internal/xdsclient/client.go
  • gateway/gateway-runtime/policy-engine/internal/xdsclient/client_test.go
  • gateway/gateway-runtime/policy-engine/internal/xdsclient/config.go
  • gateway/gateway-runtime/policy-engine/internal/xdsclient/config_test.go

Comment @coderabbitai help to get the list of available commands.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant