NVIDIA / NVIDIA/OpenShell

feat: expose supervisor middleware registrations through Helm values

Open
#2,286 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

state:stale
Dominant language
Rust
Stars
8.7k
Forks
1.3k
Avg merge
2d 11h
Merged PRs (30d)
253

Description

Problem Statement

PR #2027 adds static external supervisor middleware registration through [[openshell.supervisor.middleware]] in gateway.toml. The supported Helm installation path does not currently expose or render these registrations, so Kubernetes operators cannot configure the feature through chart values.

This is a packaging and configuration-surface gap rather than a middleware runtime security issue. Runtime registration through gateway TOML remains available.

Related work: #1733, #2011, and PR #2027.

Proposed Design

Add a typed list under the Helm supervisor configuration for external middleware services. Each entry should support:

  • name
  • grpcEndpoint
  • maxBodyBytes
  • Optional timeout

Render each entry as a separate [[openshell.supervisor.middleware]] table in the gateway ConfigMap. Preserve list order, quote string values safely, and omit optional timeout values when unset.

Update chart documentation and gateway configuration guidance for Kubernetes deployments.

Add Helm unit tests covering:

  • No registrations by default.
  • One registration without a timeout.
  • Multiple registrations.
  • An optional timeout.
  • Correct TOML quoting and field names.

Alternatives Considered

An unrestricted raw TOML extension would expose the feature with less template work, but it would bypass the chart typed configuration surface and make validation, documentation, and upgrades harder. A typed list matches the existing Helm configuration model and limits the rendered scope to supported fields.

Keeping Helm rendering in PR #2027 was also considered. It is deferred because the runtime, policy, and security behavior are independent of Kubernetes packaging and can be reviewed separately.

Agent Investigation

The gateway chart currently renders gateway.toml from deploy/helm/openshell/templates/gateway-config.yaml. Neither that template nor deploy/helm/openshell/values.yaml exposes supervisor middleware registrations. Existing gateway ConfigMap tests in deploy/helm/openshell/tests/gateway_config_test.yaml provide the appropriate regression surface.

Possible duplicates were searched. #2011 is the broad external-middleware phase issue, while #1886 covers provider configuration and is not a suitable tracker for this chart-specific work.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with deploy/helm/openshell/values.yaml and deploy/helm/openshell/templates/gateway-config.yaml to trace the existing supervisor configuration and gateway.toml rendering. Run deploy/helm/openshell/tests/gateway_config_test.yaml, then add coverage for empty, single, multiple, optional-timeout, and safely quoted registrations. Done means the typed values render ordered middleware tables with the specified fields and updated chart documentation explains the Kubernetes configuration.

Written by the indexing model from the issue text.

Assessment

Tech stack
helm, kubernetes
Domain
devops, infrastructure
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
78/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.