Invoke with /version-update X.Y.Z or /update-bundle release X.Y.Z.
Not for PR/CI — use /update-bundle dev.
Step 1: Refresh related_images.json (stable)
Requires Konflux oc login in namespace crt-nshift-lightspeed-tenant. See README.md (Update Bundle from Snapshot).
./hack/snapshot_to_image_list.sh -s <ols-snapshot> -b <ols-bundle-snapshot> -r stable -o related_images.json
Use -r preview only for tech-preview paths (registry.redhat.io/openshift-lightspeed-tech-preview/...).
Images must land on registry.redhat.io/openshift-lightspeed/... (not Konflux quay).
Preserve snapshot-less entries per hack/snapshot_to_image_list.sh (e.g. dataverse-exporter, interim operands not in Konflux). README documents backing up lightspeed-operator-bundle when only operand images change.
If CRD/RBAC changed since last bundle, run make manifests before regenerating the bundle (Step 4).
Update the version in two files. They must all match.
Critical Rules
- The CSV
namefield includes avprefix (e.g.,lightspeed-operator.v1.0.8) - The CSV
versionfield does NOT have a prefix (e.g.,1.0.8) - Both files MUST have matching version numbers
- Always regenerate the bundle after version changes
Files to Update
1. bundle.Dockerfile — Bundle container labels (lines 63 and 66)
LABEL release=X.Y.Z
# ...
LABEL version=X.Y.Z
2. bundle/manifests/lightspeed-operator.clusterserviceversion.yaml — CSV metadata
Line 58:
name: lightspeed-operator.vX.Y.Z
Line 715:
version: X.Y.Z
Note: Line numbers are approximate and may shift. Use search to locate:
- Search for
name: lightspeed-operator.v(around line 58) - Search for
version:near the end of the file (around line 715)
Step-by-Step Process
Step 2: Update bundle.Dockerfile
# Update both LABEL release and LABEL version
sed -i '' 's/^LABEL release=.*/LABEL release=X.Y.Z/' bundle.Dockerfile
sed -i '' 's/^LABEL version=.*/LABEL version=X.Y.Z/' bundle.Dockerfile
Or manually edit lines 63 and 66.
Step 3: Update CSV metadata
Line ~58 (name field with v prefix):
name: lightspeed-operator.vX.Y.Z
Line ~715 (version field WITHOUT prefix):
version: X.Y.Z
Step 4: Regenerate Bundle
After updating both files, regenerate the bundle:
make bundle BUNDLE_TAG=X.Y.Z
Or use the script:
hack/update_bundle.sh -v X.Y.Z -i related_images.json
This ensures all generated files are consistent with the new version and stable images.
operator-sdk bundle validate ./bundle
Step 5: Verify Changes
git diff bundle.Dockerfile related_images.json bundle/
Confirm:
-
related_images.jsonuses stableregistry.redhat.ioimages -
bundle.Dockerfilehasrelease=X.Y.Zandversion=X.Y.Z - CSV
namefield:lightspeed-operator.vX.Y.Z(withvprefix) - CSV
versionfield:X.Y.Z(without prefix) - CSV
relatedImagesand deployment args matchrelated_images.json - All generated bundle files are updated
Step 6: Commit (only when user asks)
git add bundle.Dockerfile related_images.json bundle/
git commit -m "OLS-XXXX: Release vX.Y.Z"
Checklist
-
related_images.jsonrefreshed with-r stable -
bundle.Dockerfileupdated (lines 63, 66) -
bundle/manifests/lightspeed-operator.clusterserviceversion.yamlname updated (line ~58, withvprefix) -
bundle/manifests/lightspeed-operator.clusterserviceversion.yamlversion updated (line ~715, without prefix) - Bundle regenerated with
make bundle BUNDLE_TAG=X.Y.Zorhack/update_bundle.sh -v X.Y.Z -i related_images.json -
operator-sdk bundle validate ./bundlepasses - Both version files have matching
X.Y.Z - Changes committed (when requested)
Common Mistakes to Avoid
❌ Forgetting the v prefix in CSV name field
❌ Adding a v prefix to CSV version field
❌ Updating only one file
❌ Not regenerating the bundle after changes
❌ Mismatched version numbers between files
❌ Bumping version without refreshing stable images (-r stable)
❌ Merging dev quay images from /update-bundle dev to main without re-running this skill
Related
/update-bundle dev— PR/CI bundle sync (Konflux-r ci, current version)docs/olm-bundle-management.md— bundle structurehack/release_tools.md— release tooling