Skip to content

feat(olm): publish stable MVO CSV and resolve bundle image - #131

Open
ompushkara wants to merge 1 commit into
mainfrom
SECURESIGN-5153
Open

ompushkara wants to merge 1 commit into
mainfrom
SECURESIGN-5153

Conversation

@ompushkara

@ompushkara ompushkara commented Nov 9, 2026 •

Copy link
Copy Markdown

Signed-off-by: ompushkara <omotilal@redhat.com>
@qodo-for-securesign

Copy link
Copy Markdown

PR Summary by Qodo

Prepare the stable MVO CSV and resolve its operator image

✨ Enhancement ⚙️ Configuration changes 🕐 20-40 Minutes

Grey Divider

AI Description

• Promote the OLM ClusterServiceVersion to 1.0.0 with stable maturity and updated catalog
 presentation.
• Copy the manager Deployment image into the CSV annotation so bundle metadata matches the
 configured image.
Diagram

graph TD
  IMG["Image override"] --> OLM["OLM overlay"] --> DEP["Manager Deployment"] --> CSV["Resolved CSV"]
  BASE["Base CSV"] --> OLM
  OLM --> CSV
Loading
High-Level Assessment

Using a Kustomize replacement keeps the CSV annotation tied to the Deployment image after image substitution, avoiding a separately maintained image value. The existing OLM overlay is the appropriate place for that wiring.

Files changed (2) +25 / -7

Enhancement (1) +14 / -7
model-validation-operator.clusterserviceversion.yamlPresent MVO as a stable 1.0.0 operator +14/-7

Present MVO as a stable 1.0.0 operator

• Updates the CSV name, version, maturity, and upgrade capability for the stable release. Adds a fuller product description, an SVG icon, and a provider URL.

config/manifests/bases/model-validation-operator.clusterserviceversion.yaml

Other (1) +11 / -0
kustomization.yamlResolve the CSV image from the manager Deployment +11/-0

Resolve the CSV image from the manager Deployment

• Adds a Kustomize replacement that copies the manager container's resolved image into the CSV's containerImage annotation, keeping bundle metadata aligned with the configured operator image.

config/overlays/olm/kustomization.yaml

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 36.34%. Comparing base (f6047f3) to head (3814962).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #131   +/-   ##
=======================================
  Coverage   36.34%   36.34%           
=======================================
  Files          20       20           
  Lines        1992     1992           
=======================================
  Hits          724      724           
  Misses       1223     1223           
  Partials       45       45           
Flag Coverage Δ
unit 36.34% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@qodo-for-securesign

Copy link
Copy Markdown

Code Review by Qodo


Action required

1. Bundle releases retain old version 🔗 Cross-repo conflict
Description
The Makefile and Dockerfile.model-validation-bundle.rh still pass 0.1.4 to `operator-sdk
generate bundle, which overwrites the CSV’s new metadata.name and spec.version of 1.0.0`. When
the Red Hat bundle is built through the PipelineRuns, the shared pipeline supplies no VERSION
build argument and uses their unchanged 0.1.4 image-version parameter for the image label, so both
the generated CSV and labeled artifact retain the previous version.
Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The CSV declares version 1.0.0, but the Makefile and Red Hat image builds still generate bundles with 0.1.4. The bundle PipelineRuns also label the image 0.1.4, and the shared pipeline does not turn `image-version` into a Docker build argument.

## Fix Focus Areas
- config/manifests/bases/model-validation-operator.clusterserviceversion.yaml[21-21]
- config/manifests/bases/model-validation-operator.clusterserviceversion.yaml[74-79]
- Makefile[1-5]
- Dockerfile.model-validation-bundle.rh[1-5]
- .tekton/model-validation-operator-bundle-push.yaml[19-29]
- .tekton/model-validation-operator-bundle-pull-request.yaml[19-26]
- /cross_repos/pipelines/pipelines/bundle-build-oci-ta.yaml[252-266]

## Recommended Fix
Update the Makefile and Dockerfile bundle-generation versions and both PipelineRun image-version parameters to 1.0.0. Supply a `VERSION=1.0.0` build argument if the pipeline is intended to set the Dockerfile version. Adjust upgrade-test version derivation and catalog references consistently, then verify the generated CSV name and version in both Makefile and Red Hat image builds and check the image label before handing the bundle to the catalog release.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Dismiss ↗ | View ↗


View medium (1)
Remediation recommended
2. Stable users cannot select this bundle 🐞 Bug
Description
The CSV changes maturity to stable, but the production bundle Dockerfile still generates
metadata with CHANNELS and DEFAULT_CHANNEL set to tech-preview. The push pipeline selects that
Dockerfile without a stable-channel override, so publishing this bundle does not make it available
through a stable channel.
Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The CSV declares stable maturity while the production bundle remains in the tech-preview channel.

## Fix Focus Areas
- config/manifests/bases/model-validation-operator.clusterserviceversion.yaml[74-74]
- Dockerfile.model-validation-bundle.rh[1-5]
- .tekton/model-validation-operator-bundle-push.yaml[20-29]

## Recommended Fix
Set production bundle channels and default channel to the intended stable channel, and update the corresponding catalog publication configuration. Verify generated bundle metadata and catalog channel membership.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Dismiss ↗ | View ↗


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.

2 participants