Skip to content

feat(self-managed): secure Pylon gRPC registration on port 50071 #1294

Description

@mikeyrcamp

Description

Provide a supported, certificate-validated gRPC registration endpoint for Pylon workers on port 50071.

The self-managed stack currently exposes the request-router gRPC service as plaintext h2c and advertises a scheme-less address that Pylon normalizes to HTTP. Existing request-router certificate settings configure reverse QUIC TLS on port 50072; mounting that certificate does not enable gRPC TLS on port 50071.

For a secure multi-cluster deployment, workers need this explicit path:

Pylon -- TLS/h2 --> worker-reachable endpoint :50071
                         `-- plaintext h2c --> stargate-k8s-router :50071
                                                    `-- gRPC --> selected Stargate pod

Certificates identify DNS names rather than ports. Reuse an existing certificate when its SAN covers the worker dial hostname and the terminator can consume it; otherwise issue a certificate for that hostname.

Definition of Done

  • LLM/PKI-enabled self-managed profiles configure TLS/h2 termination for worker gRPC registration on port 50071.
  • The configured certificate chains to the worker trust contract and covers the external dial hostname.
  • ALPN negotiates h2; the backend connection remains supported plaintext h2c.
  • The NVCF API worker bootstrap address and addons.llm.requestRouter.backendRouter.pylonGrpcDialAddress both use the same explicit HTTPS endpoint.
  • The self-managed configuration schema and validation accept explicit URI schemes and reject incomplete TLS/certificate combinations.
  • Secure profiles do not silently fall back to plaintext. Plaintext remains available only through an explicit development-mode choice.
  • Listener routing selects the certificate by public SNI while permitting the internal per-pod HTTP/2 authorities used by stargate-k8s-router.
  • Streaming Watch and Register RPCs are not terminated by an HTTP request timeout.
  • openssl s_client verifies the chain and negotiates h2 without insecure flags.
  • grpcurl receives WatchStargates, and every returned grpcPylonDialAddr is HTTPS.
  • A multi-cluster end-to-end test proves worker registration, authentication, reverse QUIC, and invocation.
  • Documentation clearly separates gRPC TLS/50071 from reverse QUIC TLS/50072.

Resources


By submitting this issue, you acknowledge that you are an assigned member of the NVCF development team and agree to follow the project code of conduct and contributing guidelines.

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-triageIssue or PR awaiting maintainer triage

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions