Skip to content

feat(pki): add OpenBao ClusterIssuer chart - #537

Merged
sbaum1994 merged 2 commits into
mainfrom
feat/self-managed-openbao-clusterissuer
Jul 30, 2026
Merged

feat(pki): add OpenBao ClusterIssuer chart#537
sbaum1994 merged 2 commits into
mainfrom
feat/self-managed-openbao-clusterissuer

Conversation

@mikeyrcamp

@mikeyrcamp mikeyrcamp commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

TL;DR

Add an optional helm-nvcf-pki chart that provisions the OpenBao-backed cert-manager ClusterIssuer required by the self-managed LLM TLS path. Register the chart for semantic release and add version 0.1.0 to the public artifact catalog.

Additional Details

The LLM request router can create a Certificate that references ClusterIssuer/nvcf-openbao-pki, but the stack does not currently publish a chart that owns that issuer. This leaves the certificate unissued when the referenced issuer is absent.

The new chart:

  • renders no resources by default;
  • renders exactly one cluster-scoped ClusterIssuer when enabled;
  • configures the OpenBao server, signing path, JWT auth mount, role, service account, and token audience;
  • validates all required values during rendering; and
  • preserves the issuer during chart uninstall so active certificates are not disrupted accidentally.

This is the publication-only PR. Stack consumption remains out of scope until helm-nvcf-pki:0.1.0 is available from the normal chart source.

Customer Release Notes

Adds an optional Helm chart for provisioning the OpenBao-backed ClusterIssuer used by NVCF service TLS.

Plan Summary

The chart adds one optional cluster-scoped cert-manager resource. It adds no pods, images, Secrets, or runtime application dependencies. The default configuration renders no Kubernetes resources.

Usage

Enable clusterIssuer.enabled and provide the issuer name, OpenBao server and signing path, JWT authentication settings, and cert-manager service account identity. The self-managed stack integration will follow in a separate PR after publication.

For the Reviewer

Please focus on:

  • deploy/helm/nvcf-pki/templates/clusterissuer.yaml for resource ownership and uninstall behavior;
  • deploy/helm/nvcf-pki/scripts/check-render.sh for the render validation matrix;
  • tools/ci/github-release-subprojects.json for release registration; and
  • the version catalog entries for artifact metadata.

For QA

Validated on the exact pushed commit set:

  • helm lint deploy/helm/nvcf-pki
  • helm template nvcf-pki deploy/helm/nvcf-pki
  • deploy/helm/nvcf-pki/scripts/check-render.sh
  • python3 -m unittest tools/ci/test-github-release.py
  • go test -C tools/docs-version-sync ./...
  • ./tools/ci/check-doc-version-sync
  • git diff --check origin/main...HEAD

The docs synchronization wrapper emitted its existing advisory warning because imports.yaml is not present in the public checkout. Its Go unit tests passed.

Post-merge QA is required: confirm the 0.1.0 chart is published, render the published artifact, and verify the issuer reaches Ready=True in a disposable environment with cert-manager and OpenBao.

Issues

Relates to #502

Notes

This is Pull Request 1 of the two-PR rollout. Do not begin stack consumption based only on a local chart override. Pull Request 2 must wait for successful publication of helm-nvcf-pki:0.1.0.

Safe rollback removes or reconfigures certificate consumers before issuer management is disabled. The retained ClusterIssuer should only be deleted after no active certificate depends on it.

References

Related Pull Requests

None.

Dependencies

None. No new third-party package is added. License review is not required, and NOTICE is unchanged.

Checklist

  • I am familiar with the Contributing Guidelines.
  • I have signed off my commits for Developer Certificate of Origin (DCO) compliance.
  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

Summary by CodeRabbit

  • New Features
    • Added a new optional Helm chart (helm-nvcf-pki) to provision a cert-manager ClusterIssuer backed by OpenBao for service TLS.
    • Introduced configurable issuer identity, Vault endpoint/path, and cert-manager JWT authentication parameters.
  • Documentation
    • Expanded chart documentation with prerequisites, install/verify steps, and guidance for enabling, disabling, renaming, and safely cleaning up retained issuers.
    • Registered the chart in the manifest inventory and version catalog as an optional provisioning item.
  • Tests
    • Added automated Helm render/manifest validation for enabled/disabled scenarios, required-field enforcement, and expected output matching.

@coderabbitai

coderabbitai Bot commented Jul 29, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Adds the helm-nvcf-pki Helm chart, which optionally renders a retained Vault-backed cert-manager ClusterIssuer, validates rendering and required values, and registers the chart in documentation, version metadata, and release automation.

Changes

NVCF PKI Helm chart

Layer / File(s) Summary
Chart definition and ClusterIssuer resource
deploy/helm/nvcf-pki/Chart.yaml, deploy/helm/nvcf-pki/values.yaml, deploy/helm/nvcf-pki/templates/clusterissuer.yaml, deploy/helm/nvcf-pki/README.md, deploy/helm/nvcf-pki/AGENTS.md, deploy/helm/nvcf-pki/CLAUDE.md
Defines chart metadata and issuer settings, conditionally renders a Vault-backed ClusterIssuer with required fields and helm.sh/resource-policy: keep, and documents prerequisites, validation, and lifecycle handling.
Rendering validation
deploy/helm/nvcf-pki/scripts/check-render.sh
Checks disabled and enabled rendering, validates the generated manifest and issuer-name override, and verifies failures for empty required values.
Publication and release registration
docs/user/manifest.md, docs/version-catalog/main.yaml, tools/ci/github-release-subprojects.json
Adds the chart to the user-facing inventory, version catalog, artifact list, and release subproject configuration.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant HelmValues
  participant HelmRenderer
  participant ClusterIssuer
  HelmValues->>HelmRenderer: provide clusterIssuer settings
  HelmRenderer->>ClusterIssuer: render enabled Vault-backed manifest
Loading

Possibly related PRs

  • NVIDIA/nvcf#560: Extends the same GitHub release subproject services configuration for additional components.

Suggested reviewers: vrv3814, kristinapathak

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title follows Conventional Commits and accurately describes the main feature added by the PR.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/self-managed-openbao-clusterissuer

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

@github-actions

Copy link
Copy Markdown
Contributor

@mikeyrcamp
mikeyrcamp force-pushed the feat/self-managed-openbao-clusterissuer branch from af0db12 to d0295e4 Compare July 29, 2026 20:41
@mikeyrcamp
mikeyrcamp marked this pull request as ready for review July 29, 2026 20:54
@mikeyrcamp
mikeyrcamp requested review from a team as code owners July 29, 2026 20:54

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 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 `@deploy/helm/nvcf-pki/AGENTS.md`:
- Around line 6-15: Update the AGENTS.md section around the existing Validate
commands to document applicable code-style rules for YAML, Helm templates, and
shell scripts, including a concrete pointer to the governing repository guidance
when available. Keep the existing validation commands unchanged and add only
subtree-specific conventions needed for contributors working under nvcf-pki.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 4dfa64ef-d4ea-4c01-8cc6-53cebd08f0de

📥 Commits

Reviewing files that changed from the base of the PR and between ef6f96c and d0295e4.

📒 Files selected for processing (9)
  • deploy/helm/nvcf-pki/AGENTS.md
  • deploy/helm/nvcf-pki/CLAUDE.md
  • deploy/helm/nvcf-pki/Chart.yaml
  • deploy/helm/nvcf-pki/scripts/check-render.sh
  • deploy/helm/nvcf-pki/templates/clusterissuer.yaml
  • deploy/helm/nvcf-pki/values.yaml
  • docs/user/manifest.md
  • docs/version-catalog/main.yaml
  • tools/ci/github-release-subprojects.json

Comment thread deploy/helm/nvcf-pki/AGENTS.md
Signed-off-by: Mike Camp <mcamp@nvidia.com>
@mikeyrcamp
mikeyrcamp force-pushed the feat/self-managed-openbao-clusterissuer branch from d0295e4 to 03287fe Compare July 29, 2026 20:58
Signed-off-by: Stephanie Baum <sbaum@nvidia.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 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 `@deploy/helm/nvcf-pki/README.md`:
- Around line 94-102: The operational commands in the README hardcode
nvcf-openbao-pki instead of honoring the configurable clusterIssuer.name value.
Update the issuer verification commands and the additionally referenced deletion
commands to use a clear clusterIssuer.name placeholder or an ISSUER_NAME
variable consistently.
- Around line 148-155: Add the required git diff --check command to the Local
validation steps in the nvcf-pki README, alongside the existing Helm lint,
template, and render checks, and specify that it runs from the repository root.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: f0c1f86d-5f62-4407-8379-726867171079

📥 Commits

Reviewing files that changed from the base of the PR and between 03287fe and 36b1c14.

📒 Files selected for processing (1)
  • deploy/helm/nvcf-pki/README.md

Comment thread deploy/helm/nvcf-pki/README.md
Comment thread deploy/helm/nvcf-pki/README.md
@sbaum1994
sbaum1994 added this pull request to the merge queue Jul 30, 2026
Merged via the queue into main with commit 6b45469 Jul 30, 2026
20 checks passed
@sbaum1994
sbaum1994 deleted the feat/self-managed-openbao-clusterissuer branch July 30, 2026 07:01
@balajinvda

Copy link
Copy Markdown
Contributor

🎉 This PR is included in version helm-nvcf-pki-v0.1.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants