Skip to content

feat(api7): add extraInitContainers support to dashboard and dp_manager deployments#287

Merged
nic-6443 merged 5 commits into
api7:mainfrom
epmatimbe:feat/extend-containers
May 14, 2026
Merged

feat(api7): add extraInitContainers support to dashboard and dp_manager deployments#287
nic-6443 merged 5 commits into
api7:mainfrom
epmatimbe:feat/extend-containers

Conversation

@epmatimbe
Copy link
Copy Markdown
Contributor

@epmatimbe epmatimbe commented May 14, 2026

PR Overview

The charts/api7 chart currently exposes extraEnvVars, extraVolumes, and extraVolumeMounts on the dashboard, developer_portal and dp_manager components, but no extraInitContainers. This makes it impossible to run initialization logic before the main container starts. For example, setup and ssl certificates required for connections, setup custom agents within the pods, etc.

Summary by CodeRabbit

  • New Features

    • Added support for configurable custom init containers for dashboard, developer-portal, and dp-manager via Helm values.
  • Documentation

    • Added documentation for the new extraInitContainers values and their defaults in the chart README/values.
  • Chores

    • Bumped chart version to publish the update.

Review Change Stack

Copilot AI review requested due to automatic review settings May 14, 2026 08:43
@CLAassistant
Copy link
Copy Markdown

CLAassistant commented May 14, 2026

CLA assistant check
All committers have signed the CLA.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 14, 2026

Warning

Rate limit exceeded

@jarvis9443 has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 50 minutes and 7 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d5b22e88-8029-489c-8857-fe598a194a09

📥 Commits

Reviewing files that changed from the base of the PR and between 6349d4c and 9d52658.

📒 Files selected for processing (2)
  • charts/api7/README.md
  • charts/api7/templates/dp-manager-deploy.yaml
📝 Walkthrough

Walkthrough

The PR adds optional extraInitContainers configuration to three API7 Helm components. Three deployment templates now conditionally render init containers when the corresponding configuration values are provided, enabling users to inject custom initialization logic at deployment time.

Changes

Init Container Configuration Support

Layer / File(s) Summary
ExtraInitContainers support across dashboard, dp-manager, and developer-portal
charts/api7/values.yaml, charts/api7/templates/dashboard-deploy.yaml, charts/api7/templates/dp-manager-deploy.yaml, charts/api7/templates/developer-portal-deploy.yaml, charts/api7/Chart.yaml, charts/api7/README.md
Added extraInitContainers: [] defaults for dashboard, dp_manager, and developer_portal; deployment templates conditionally render spec.template.spec.initContainers from those values; chart version bumped and README values table updated.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested reviewers

  • nic-6443
🚥 Pre-merge checks | ✅ 5 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
E2e Test Quality Review ⚠️ Warning No E2E tests for extraInitContainers feature. Bug in dp-manager-deploy.yaml uses dashboard.extraVolumes instead of dp_manager.extraVolumes. Generic helm lint/install insufficient. 1. Fix dp-manager volumes bug (dashboard.extraVolumes → dp_manager.extraVolumes); 2. Add E2E helm tests covering empty/valid YAML injection scenarios; 3. Test all three deployments with template variable rendering.
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main change: adding extraInitContainers support to dashboard and dp_manager deployments. However, it omits developer_portal, which received the same feature.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Security Check ✅ Passed Adds extraInitContainers using safe tplvalues.render pattern. Empty array defaults. Consistent with existing extraVolumes/extraEnvVars features. No security vulnerabilities detected.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


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.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds extraInitContainers support to the api7 Helm chart so dashboard, dp_manager, and developer_portal pods can run user-defined initialization containers before the main application container.

Changes:

  • Adds extraInitContainers: [] defaults for dashboard, dp_manager, and developer_portal.
  • Renders optional initContainers blocks in the three deployment templates.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 5 comments.

File Description
charts/api7/values.yaml Adds default values for component-specific extra init containers.
charts/api7/templates/dashboard-deploy.yaml Adds dashboard init container rendering.
charts/api7/templates/dp-manager-deploy.yaml Adds dp_manager init container rendering.
charts/api7/templates/developer-portal-deploy.yaml Adds developer_portal init container rendering.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread charts/api7/templates/dashboard-deploy.yaml Outdated
Comment thread charts/api7/templates/developer-portal-deploy.yaml Outdated
Comment thread charts/api7/templates/dp-manager-deploy.yaml Outdated
Comment thread charts/api7/values.yaml
Comment thread charts/api7/values.yaml
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (3)
charts/api7/templates/developer-portal-deploy.yaml (1)

50-53: ⚡ Quick win

Consider using tplvalues.render for consistency with other extra fields.*

The new extraInitContainers uses toYaml directly, while the existing extraVolumes (line 43) and extraVolumeMounts (line 95) use the api7ee3.tplvalues.render helper. The helper likely supports Go template evaluation within values, enabling dynamic configurations.

For consistency and to provide the same flexibility to users, consider using the same rendering pattern.

♻️ Proposed fix for consistency
       {{- if .Values.developer_portal.extraInitContainers }}
       initContainers:
-        {{- toYaml .Values.developer_portal.extraInitContainers | nindent 8 }}
+        {{- include "api7ee3.tplvalues.render" (dict "value" .Values.developer_portal.extraInitContainers "context" $) | nindent 8 }}
       {{- end }}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@charts/api7/templates/developer-portal-deploy.yaml` around lines 50 - 53, The
initContainers block is rendering .Values.developer_portal.extraInitContainers
with toYaml directly; change it to use the same helper as other extra* fields by
passing .Values.developer_portal.extraInitContainers through
api7ee3.tplvalues.render before converting/indenting so template expressions in
values are evaluated consistently (update the usage around initContainers and
reference the api7ee3.tplvalues.render helper and
developer_portal.extraInitContainers symbol when making the change).
charts/api7/templates/dp-manager-deploy.yaml (1)

49-52: ⚡ Quick win

Consider using tplvalues.render for consistency with other extra fields.*

The new extraInitContainers uses toYaml directly, while the existing extraVolumes (line 46) and extraVolumeMounts (line 92) use the api7ee3.tplvalues.render helper. The helper likely supports Go template evaluation within values, enabling dynamic configurations.

For consistency and to provide the same flexibility to users, consider using the same rendering pattern.

♻️ Proposed fix for consistency
       {{- if .Values.dp_manager.extraInitContainers }}
       initContainers:
-        {{- toYaml .Values.dp_manager.extraInitContainers | nindent 8 }}
+        {{- include "api7ee3.tplvalues.render" (dict "value" .Values.dp_manager.extraInitContainers "context" $) | nindent 8 }}
       {{- end }}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@charts/api7/templates/dp-manager-deploy.yaml` around lines 49 - 52, Replace
the direct toYaml rendering of extraInitContainers with the same
template-evaluation helper used by other extra* fields: call
api7ee3.tplvalues.render on .Values.dp_manager.extraInitContainers (so template
expressions in values are evaluated), then pass the result through toYaml and
nindent 8 as before; update the block that references extraInitContainers to use
api7ee3.tplvalues.render .Values.dp_manager.extraInitContainers | toYaml |
nindent 8 so it matches the pattern used by extraVolumes/extraVolumeMounts.
charts/api7/templates/dashboard-deploy.yaml (1)

54-57: ⚡ Quick win

Consider using tplvalues.render for consistency with other extra fields.*

The new extraInitContainers uses toYaml directly, while the existing extraVolumes (line 42) and extraVolumeMounts (line 101) use the api7ee3.tplvalues.render helper. The helper likely supports Go template evaluation within values, enabling dynamic configurations (e.g., referencing other values or using conditionals).

For consistency and to provide the same flexibility to users, consider using the same rendering pattern.

♻️ Proposed fix for consistency
       {{- if .Values.dashboard.extraInitContainers }}
       initContainers:
-        {{- toYaml .Values.dashboard.extraInitContainers | nindent 8 }}
+        {{- include "api7ee3.tplvalues.render" (dict "value" .Values.dashboard.extraInitContainers "context" $) | nindent 8 }}
       {{- end }}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@charts/api7/templates/dashboard-deploy.yaml` around lines 54 - 57, The
extraInitContainers block currently uses toYaml directly; update it to pass
.Values.dashboard.extraInitContainers through the api7ee3.tplvalues.render
helper (the same used by extraVolumes and extraVolumeMounts) before converting
to YAML so template expressions in values are evaluated; specifically, call
api7ee3.tplvalues.render on extraInitContainers and then pipe the result to
toYaml | nindent 8, preserving the surrounding if check and nindent formatting.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@charts/api7/templates/dp-manager-deploy.yaml`:
- Around line 46-48: The dp-manager deployment template incorrectly references
dashboard values; update the conditional and include calls that use
.Values.dashboard.extraVolumes and .Values.dashboard.extraVolumeMounts to
instead use .Values.dp_manager.extraVolumes and
.Values.dp_manager.extraVolumeMounts (i.e., change the dict "value" argument
passed to the include "api7ee3.tplvalues.render" and any direct
.Values.dashboard.* usages inside the dp-manager-deploy.yaml to
.Values.dp_manager.*) so dp-manager reads its own extraVolumes and
extraVolumeMounts configuration; ensure both occurrences (the extraVolumes
conditional/include block and the extraVolumeMounts block) are updated.

---

Nitpick comments:
In `@charts/api7/templates/dashboard-deploy.yaml`:
- Around line 54-57: The extraInitContainers block currently uses toYaml
directly; update it to pass .Values.dashboard.extraInitContainers through the
api7ee3.tplvalues.render helper (the same used by extraVolumes and
extraVolumeMounts) before converting to YAML so template expressions in values
are evaluated; specifically, call api7ee3.tplvalues.render on
extraInitContainers and then pipe the result to toYaml | nindent 8, preserving
the surrounding if check and nindent formatting.

In `@charts/api7/templates/developer-portal-deploy.yaml`:
- Around line 50-53: The initContainers block is rendering
.Values.developer_portal.extraInitContainers with toYaml directly; change it to
use the same helper as other extra* fields by passing
.Values.developer_portal.extraInitContainers through api7ee3.tplvalues.render
before converting/indenting so template expressions in values are evaluated
consistently (update the usage around initContainers and reference the
api7ee3.tplvalues.render helper and developer_portal.extraInitContainers symbol
when making the change).

In `@charts/api7/templates/dp-manager-deploy.yaml`:
- Around line 49-52: Replace the direct toYaml rendering of extraInitContainers
with the same template-evaluation helper used by other extra* fields: call
api7ee3.tplvalues.render on .Values.dp_manager.extraInitContainers (so template
expressions in values are evaluated), then pass the result through toYaml and
nindent 8 as before; update the block that references extraInitContainers to use
api7ee3.tplvalues.render .Values.dp_manager.extraInitContainers | toYaml |
nindent 8 so it matches the pattern used by extraVolumes/extraVolumeMounts.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: f46d60c2-b819-4916-a5e2-848d237c7067

📥 Commits

Reviewing files that changed from the base of the PR and between 96c06b3 and 5a81faa.

📒 Files selected for processing (4)
  • charts/api7/templates/dashboard-deploy.yaml
  • charts/api7/templates/developer-portal-deploy.yaml
  • charts/api7/templates/dp-manager-deploy.yaml
  • charts/api7/values.yaml

Comment thread charts/api7/templates/dp-manager-deploy.yaml Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 14, 2026 08:49
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 4 out of 4 changed files in this pull request and generated 5 comments.

Comment thread charts/api7/templates/dp-manager-deploy.yaml Outdated
Comment thread charts/api7/templates/developer-portal-deploy.yaml Outdated
Comment thread charts/api7/templates/dp-manager-deploy.yaml Outdated
Comment thread charts/api7/values.yaml
Comment thread charts/api7/values.yaml
Copy link
Copy Markdown
Contributor Author

@epmatimbe epmatimbe left a comment

Choose a reason for hiding this comment

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

Copilot AI review requested due to automatic review settings May 14, 2026 13:32
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Comment thread charts/api7/templates/dp-manager-deploy.yaml
…er deployment

The dp-manager-deploy.yaml template incorrectly referenced
.Values.dashboard.extraVolumes and .Values.dashboard.extraVolumeMounts
instead of .Values.dp_manager.extraVolumes and
.Values.dp_manager.extraVolumeMounts. This made it impossible to mount
custom volumes in the dp-manager pod independently of the dashboard.
@nic-6443 nic-6443 merged commit d232e52 into api7:main May 14, 2026
3 checks passed
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.

5 participants