Skip to content
This repository was archived by the owner on Sep 9, 2026. It is now read-only.

OSAC-1906: Add osac-ui as subchart dependency in umbrella chart - #376

Merged
eliorerz merged 1 commit into
osac-project:mainfrom
eliorerz:OSAC-1906-add-osac-ui-subchart
Jul 1, 2026
Merged

eliorerz merged 1 commit into
osac-project:mainfrom
eliorerz:OSAC-1906-add-osac-ui-subchart

Conversation

@eliorerz

@eliorerz eliorerz commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add osac-ui git submodule under base/
  • Add subchart dependency in Chart.yaml (alias: ui, condition: ui.enabled)
  • Add ui: values section to values.yaml, values.schema.json, all CI values files, and environment values files (development, vmaas-ci)
  • Update bump-submodules, publish-charts, and sync-image-tags.sh automation to include osac-ui

Why

The OSAC UI web console needs to be deployed as part of the umbrella Helm chart, following the same pattern used by operator, fulfillment-service, aap, and bmf.

Dependencies

Test plan

  • helm dependency build charts/osac/ succeeds
  • helm template with development values renders UI resources
  • All CI values files template successfully
  • sync-image-tags.sh reports vmaas-ci osac-ui: OK

Summary by CodeRabbit

  • New Features

    • Added the OSAC UI to the platform’s default deployment and Helm chart packaging.
    • Updated release and CI configurations so the UI image and settings are included alongside other components.
    • Enabled deployment options for the UI in development and CI environments, including hostname, authentication, and certificate bundle settings.
  • Bug Fixes

    • Improved image and submodule validation to ensure the UI component is only promoted when a matching published image is available.

@openshift-ci-robot

openshift-ci-robot commented Jul 1, 2026

Copy link
Copy Markdown

@eliorerz: This pull request references OSAC-1906 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Summary

  • Add osac-ui git submodule under base/
  • Add subchart dependency in Chart.yaml (alias: ui, condition: ui.enabled)
  • Add ui: values section to values.yaml, values.schema.json, all CI values files, and environment values files (development, vmaas-ci)
  • Update bump-submodules, publish-charts, and sync-image-tags.sh automation to include osac-ui

Why

The OSAC UI web console needs to be deployed as part of the umbrella Helm chart, following the same pattern used by operator, fulfillment-service, aap, and bmf.

Dependencies

Test plan

  • helm dependency build charts/osac/ succeeds
  • helm template with development values renders UI resources
  • All CI values files template successfully
  • sync-image-tags.sh reports vmaas-ci osac-ui: OK

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci

openshift-ci Bot commented Jul 1, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: eliorerz

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci Bot added the approved label Jul 1, 2026
@coderabbitai

coderabbitai Bot commented Jul 1, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@eliorerz, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 27 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Repository: osac-project/coderabbit/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 5fee0bb0-3be1-4330-a48f-32835d22ea41

📥 Commits

Reviewing files that changed from the base of the PR and between 04f62e6 and 144c74c.

📒 Files selected for processing (14)
  • .github/workflows/bump-submodules.yaml
  • .github/workflows/publish-charts.yaml
  • .gitmodules
  • base/osac-ui
  • charts/osac/Chart.yaml
  • charts/osac/ci/bundled-postgres-values.yaml
  • charts/osac/ci/default-values.yaml
  • charts/osac/ci/full-values.yaml
  • charts/osac/ci/no-aap-values.yaml
  • charts/osac/values.schema.json
  • charts/osac/values.yaml
  • scripts/sync-image-tags.sh
  • values/development/values.yaml
  • values/vmaas-ci/values.yaml

Walkthrough

Adds osac-ui as a new component throughout the installer: a new git submodule, CI workflow support for validating and bumping its image and publishing its chart version, a Helm chart dependency with schema and default values, and image-tag sync script updates for the UI component.

Changes

osac-ui component onboarding

Layer / File(s) Summary
Submodule registration
.gitmodules, base/osac-ui
Registers base/osac-ui submodule path/URL and pins it to commit 8314b32f....
Bump workflow image validation
.github/workflows/bump-submodules.yaml
Validates the osac-ui repo's latest commit has a published GHCR image and bumps the submodule to that validated sha.
Image tag sync script
scripts/sync-image-tags.sh
Adds osac-ui to the image-name map and submodule iteration, derives ui_tag, syncs it via inline mode, and adds a fallback for missing grep matches.
Chart dependency and schema
charts/osac/Chart.yaml, charts/osac/values.schema.json
Adds osac-ui as a conditional Helm dependency and defines its schema (enabled, externalHostname, images.ui).
Publish workflow versioning
.github/workflows/publish-charts.yaml
Adds ui_version input, resolves/validates/outputs ui_ver, and rewrites Chart.yaml dependency repository/version for osac-ui at publish time.
UI values configuration
charts/osac/values.yaml, charts/osac/ci/*.yaml, values/development/values.yaml, values/vmaas-ci/values.yaml
Adds ui blocks enabling the UI, setting image, hostname, fulfillment API, OIDC auth, and CA bundle across default and environment-specific values files.

Estimated code review effort: 2 (Simple) | ~15 minutes

Possibly related PRs

Suggested labels: lgtm

Suggested reviewers: omer-vishlitzky, adriengentil

🚥 Pre-merge checks | ✅ 11
✅ Passed checks (11 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: adding osac-ui as an umbrella chart subchart dependency.
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.
No-Hardcoded-Secrets ✅ Passed The new UI/workflow lines contain only image names, hostnames, configMap refs, and secret references; no hardcoded credentials or private keys were added.
No-Weak-Crypto ✅ Passed No weak-crypto primitives or secret comparisons were added; the new SHA tags are commit-hash image tags, not SHA1/MD5 crypto.
No-Injection-Vectors ✅ Passed No listed injection sinks were added; scans found no eval/os.system/yaml.load/etc., and the new interpolations are fixed literals or validated SHAs/semver.
Container-Privileges ✅ Passed Changed files are values/workflow/submodule refs only; no privileged, hostNetwork/IPC/PID, SYS_ADMIN, or allowPrivilegeEscalation=true settings were added.
No-Sensitive-Data-In-Logs ✅ Passed New logs only print chart versions, image tags, repo names, and commit SHAs; no passwords, tokens, PII, or internal/customer data are exposed.
Ai-Attribution ✅ Passed No AI-tool use is mentioned in the PR/commit, and the commit has no Assisted-by/Generated-by or Co-Authored-By trailers.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@rgolangh

rgolangh commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

/lgtm

@openshift-ci

openshift-ci Bot commented Jul 1, 2026

Copy link
Copy Markdown

@eliorerz: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-vmaas 728ca16 link true /test e2e-vmaas

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@eliorerz
eliorerz force-pushed the OSAC-1906-add-osac-ui-subchart branch from 728ca16 to 04f62e6 Compare July 1, 2026 12:02
@openshift-ci openshift-ci Bot removed the lgtm label Jul 1, 2026
@openshift-ci

openshift-ci Bot commented Jul 1, 2026

Copy link
Copy Markdown

New changes are detected. LGTM label has been removed.

@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: 4

🤖 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 @.github/workflows/bump-submodules.yaml:
- Line 83: The update_submodule call is still interpolating
steps.find.outputs.ui directly in the workflow command, which triggers
template-injection warnings. Update the workflow step that invokes
update_submodule for base/osac-ui so the resolved SHA is passed through the
step’s env block and referenced from that environment variable instead of raw
${{ }} interpolation, matching the safer pattern used in the surrounding
bump-submodules workflow.

In `@charts/osac/ci/bundled-postgres-values.yaml`:
- Around line 8-19: The bundled Postgres values use
ui.api.fulfillment.certs.caBundle and ui.auth.certs.caBundle, but the ui section
of values.schema.json does not define those nested properties. Update the schema
under ui to include the missing api.fulfillment.certs.caBundle and
auth.certs.caBundle entries so it matches the values used in
bundled-postgres-values.yaml and stays in sync with the ui schema definitions.

In `@charts/osac/values.schema.json`:
- Around line 580-604: The ui schema is missing the nested api and auth fields
that are already consumed by ui.* values, so add matching schema entries under
the ui object for ui.api and ui.auth with their expected nested structures.
Update values.schema.json near the ui definition to include the specific
subproperties used by the existing values files, including
ui.api.fulfillment.url, ui.api.fulfillment.certs.caBundle.configMap,
ui.auth.oidcClientId, and ui.auth.certs.caBundle.configMap, so schema validation
catches typos and unknown keys.

In `@charts/osac/values.yaml`:
- Around line 139-158: The new UI configuration keys in values.yaml are not
represented in values.schema.json, so add matching schema definitions for
ui.api, ui.auth, and ui.log alongside the existing ui.enabled,
ui.externalHostname, and ui.images.ui entries. Update the ui object in
values.schema.json to document and validate the nested fulfillment URL and certs
under ui.api, the oidcClientId and certs under ui.auth, and the level field
under ui.log, keeping the schema aligned with the ui values structure.
🪄 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: Repository: osac-project/coderabbit/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 6089af3a-233a-4a7d-b7d5-3d16245b465d

📥 Commits

Reviewing files that changed from the base of the PR and between 7ffb1ba and 04f62e6.

📒 Files selected for processing (14)
  • .github/workflows/bump-submodules.yaml
  • .github/workflows/publish-charts.yaml
  • .gitmodules
  • base/osac-ui
  • charts/osac/Chart.yaml
  • charts/osac/ci/bundled-postgres-values.yaml
  • charts/osac/ci/default-values.yaml
  • charts/osac/ci/full-values.yaml
  • charts/osac/ci/no-aap-values.yaml
  • charts/osac/values.schema.json
  • charts/osac/values.yaml
  • scripts/sync-image-tags.sh
  • values/development/values.yaml
  • values/vmaas-ci/values.yaml

update_submodule base/osac-operator osac-operator "${{ steps.find.outputs.operator }}"
update_submodule base/osac-fulfillment-service fulfillment-service "${{ steps.find.outputs.fulfillment }}"
update_submodule base/osac-aap osac-aap "${{ steps.find.outputs.aap }}"
update_submodule base/osac-ui osac-ui "${{ steps.find.outputs.ui }}"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔒 Security & Privacy | 🔵 Trivial | 💤 Low value

Consider passing the resolved SHA via env: instead of raw ${{ }} interpolation.

Static analysis flags this as a template-injection pattern. The value here (steps.find.outputs.ui) is a trusted commit SHA from the GitHub API within this job, so exploitability is low today — but it mirrors the same pattern already used at lines 80-82. Passing it through an environment variable removes the whole class of risk if the source of this value ever changes.

🔒️ Defense-in-depth fix
-          update_submodule base/osac-ui osac-ui "${{ steps.find.outputs.ui }}"
+          update_submodule base/osac-ui osac-ui "${UI_SHA}"

And add to the step's env: block:

       - name: Update submodules
         id: update
+        env:
+          UI_SHA: ${{ steps.find.outputs.ui }}
         run: |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
update_submodule base/osac-ui osac-ui "${{ steps.find.outputs.ui }}"
- name: Update submodules
id: update
env:
UI_SHA: ${{ steps.find.outputs.ui }}
run: |
update_submodule base/osac-ui osac-ui "${UI_SHA}"
🧰 Tools
🪛 zizmor (1.26.1)

[info] 83-83: code injection via template expansion (template-injection): may expand into attacker-controllable code

(template-injection)

🤖 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 @.github/workflows/bump-submodules.yaml at line 83, The update_submodule call
is still interpolating steps.find.outputs.ui directly in the workflow command,
which triggers template-injection warnings. Update the workflow step that
invokes update_submodule for base/osac-ui so the resolved SHA is passed through
the step’s env block and referenced from that environment variable instead of
raw ${{ }} interpolation, matching the safer pattern used in the surrounding
bump-submodules workflow.

Source: Linters/SAST tools

Comment thread charts/osac/ci/bundled-postgres-values.yaml
Comment thread charts/osac/values.schema.json
Comment thread charts/osac/values.yaml
Add the osac-ui web console to the osac-installer umbrella Helm chart:
- Add osac-ui git submodule under base/
- Add subchart dependency in Chart.yaml (alias: ui, condition: ui.enabled)
- Add ui values to values.yaml, values.schema.json, CI and env values files
- Update bump-submodules, publish-charts, and sync-image-tags automation
@eliorerz
eliorerz force-pushed the OSAC-1906-add-osac-ui-subchart branch from 04f62e6 to 144c74c Compare July 1, 2026 12:35
@eliorerz

eliorerz commented Jul 1, 2026

Copy link
Copy Markdown
Contributor Author

/ok-to-test

@eliorerz eliorerz added lgtm and removed ok-to-test labels Jul 1, 2026
@eliorerz
eliorerz merged commit cffad37 into osac-project:main Jul 1, 2026
6 of 9 checks passed
@eliorerz
eliorerz deleted the OSAC-1906-add-osac-ui-subchart branch July 1, 2026 13:52
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants