Skip to content

Conversation

@tasches
Copy link
Collaborator

@tasches tasches commented Dec 4, 2025

Summary by CodeRabbit

  • New Features
    • Added "external" as a new ingress provider option, expanding configuration choices for cluster deployments and enabling support for custom external ingress solutions.

✏️ Tip: You can customize this high-level summary in your review settings.

@tasches tasches self-assigned this Dec 4, 2025
@coderabbitai
Copy link

coderabbitai bot commented Dec 4, 2025

Walkthrough

A new ingress provider option "external" is added to the Helm chart schema enum, expanding the allowed ingress provider values from three options (nginx, traefik, none) to four (nginx, traefik, external, none) in the base-cluster chart configuration.

Changes

Cohort / File(s) Summary
Ingress Provider Schema Update
charts/base-cluster/values.schema.json
Added "external" to the ingress provider enum, extending allowed values from ["nginx", "traefik", "none"] to ["nginx", "traefik", "external", "none"]

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

  • Single file modification with a straightforward schema enum extension
  • No logic changes or behavioral implications
  • Low risk; primarily validates new configuration input option

Poem

🐰 A carrot patch grows ever wide,
External paths now open'd pride,
Four ingress routes the schema knows,
Where the clever rabbit config flows! 🌾

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: adding support for an 'external' ingress controller option in the base-cluster chart.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/allow-external-ingress

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 82b78e5 and ee41c87.

📒 Files selected for processing (1)
  • charts/base-cluster/values.schema.json (1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: cwrau
Repo: teutonet/teutonet-helm-charts PR: 1601
File: charts/base-cluster/templates/dns/external-dns.yaml:33-39
Timestamp: 2025-07-24T09:56:41.380Z
Learning: In the teutonet-helm-charts base-cluster chart, secret names like "external-dns" for Cloudflare provider are intentionally hard-coded. Users who need custom secret names should use Helm's `valuesFrom` feature to override values rather than expecting dedicated fields in values.yaml. This design keeps the values.yaml clean while still allowing full customization flexibility.
Learnt from: cwrau
Repo: teutonet/teutonet-helm-charts PR: 1601
File: charts/base-cluster/templates/dns/external-dns.yaml:30-32
Timestamp: 2025-07-24T09:55:53.655Z
Learning: In charts/base-cluster/templates/dns/external-dns.yaml, the dns.provider field in values.yaml has always been expected to be a map format (e.g., `{ cloudflare: {} }`), never a string format. The template correctly uses `{{ .Values.dns.provider | keys | first }}` to extract the provider name from the map keys.
📚 Learning: 2025-07-24T09:56:41.380Z
Learnt from: cwrau
Repo: teutonet/teutonet-helm-charts PR: 1601
File: charts/base-cluster/templates/dns/external-dns.yaml:33-39
Timestamp: 2025-07-24T09:56:41.380Z
Learning: In the teutonet-helm-charts base-cluster chart, secret names like "external-dns" for Cloudflare provider are intentionally hard-coded. Users who need custom secret names should use Helm's `valuesFrom` feature to override values rather than expecting dedicated fields in values.yaml. This design keeps the values.yaml clean while still allowing full customization flexibility.

Applied to files:

  • charts/base-cluster/values.schema.json
📚 Learning: 2025-07-24T09:55:53.655Z
Learnt from: cwrau
Repo: teutonet/teutonet-helm-charts PR: 1601
File: charts/base-cluster/templates/dns/external-dns.yaml:30-32
Timestamp: 2025-07-24T09:55:53.655Z
Learning: In charts/base-cluster/templates/dns/external-dns.yaml, the dns.provider field in values.yaml has always been expected to be a map format (e.g., `{ cloudflare: {} }`), never a string format. The template correctly uses `{{ .Values.dns.provider | keys | first }}` to extract the provider name from the map keys.

Applied to files:

  • charts/base-cluster/values.schema.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: check licenses
  • GitHub Check: lint helm chart (base-cluster)
🔇 Additional comments (1)
charts/base-cluster/values.schema.json (1)

1435-1444: Confirm implementation completeness beyond the schema change.

Adding "external" to the enum allows users to set the value, but I don't have visibility into whether the chart's conditional logic (templates, helpers, etc.) properly handles this new provider. For instance:

  • Does the chart skip deploying nginx/traefik when provider: external is set?
  • Are any provider-specific resources (ConfigMaps, RBAC, etc.) skipped for "external"?
  • Is there documentation for users on what "external" means and what they must provide?

Please confirm that the template/implementation changes are included in this PR or will be addressed separately.


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.

@gemini-code-assist
Copy link

Summary of Changes

Hello @tasches, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a significant enhancement to the base-cluster Helm chart by enabling support for external ingress controllers. This change provides greater flexibility for cluster administrators, allowing them to integrate their existing or preferred ingress solutions rather than being limited to the built-in NGINX or Traefik options. The modification primarily involves updating the configuration schema to recognize this new option.

Highlights

  • Ingress Controller Configuration: Added "external" as a new valid option for the ingress.controller.type parameter in the base-cluster Helm chart's values.schema.json, allowing users to specify an external ingress controller.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces the external option for the ingress provider, allowing users to use an external ingress controller instead of the ones managed by this chart. The change is limited to updating the values.schema.json to include external as a valid enum value for ingress.provider. My review of the related chart logic confirms that when ingress.provider is set to external, the chart correctly refrains from deploying nginx or traefik, while still creating a cluster-wide Ingress resource for DNS purposes if configured. The existing logic provides reasonable defaults for an external controller. The change is correct and well-contained.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants