Skip to content

feat(helm): Make service type configurable and add optional Ingress resource (resolves #2049).#2054

Draft
junhaoliao wants to merge 5 commits intoy-scope:mainfrom
junhaoliao:helm-ingress
Draft

feat(helm): Make service type configurable and add optional Ingress resource (resolves #2049).#2054
junhaoliao wants to merge 5 commits intoy-scope:mainfrom
junhaoliao:helm-ingress

Conversation

@junhaoliao
Copy link
Member

Description

Make the Kubernetes Service type configurable for externally-accessible services (Web UI, API
server, log ingestor, MCP server) and add an optional Ingress resource for production deployments
behind a load balancer.

Previously, these 4 services were hardcoded to NodePort. Cloud Kubernetes deployments
(EKS/GKE/AKS) conventionally use ClusterIP services behind an Ingress controller, which was not
possible without post-render patching.

Changes:

  • Add a serviceType key to clpConfig.webui, clpConfig.api_server, clpConfig.log_ingestor,
    and clpConfig.mcp_server in values.yaml, defaulting to "NodePort" (preserving existing
    behavior).
  • Update the 4 service templates to use serviceType and conditionally include nodePort only
    when serviceType is "NodePort".
  • Add a new ingress.yaml template that creates an optional Ingress resource when
    ingress.enabled is true, routing / to webui and /api to api-server.
  • Add an ingress section in values.yaml (disabled by default) with className, host,
    annotations, and tls configuration.
  • Update docs with a new "Service types and Ingress" section.

Database and results-cache services remain controlled by allowHostAccessForSbinScripts (unchanged)
since they should only ever be NodePort (for sbin/ script access) or headless ClusterIP.

Documentation updates

File Change
docs/src/user-docs/guides-k8s-deployment.md Added "Service types and Ingress" section with ClusterIP + Ingress and custom NodePort examples.

Checklist

  • The PR satisfies the contribution guidelines.
  • This is a breaking change and that has been indicated in the PR title, OR this isn't a
    breaking change.
  • Necessary docs have been updated, OR no docs need to be updated.

Validation performed

TBA

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Mar 2, 2026

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@junhaoliao junhaoliao added this to the March 2026 milestone Mar 7, 2026
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