version-update

Release workflow for main: refresh related_images.json with stable Konflux images (-r stable), bump bundle/CSV version, regenerate and validate the bundle.…

npx skills add https://github.com/openshift/lightspeed-operator --skill version-update

Version Update (Release)

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)

Prerequisite: oras and jq. Do not rely on oc.

./hack/related_images_from_quay.sh -r stable -o related_images.json

Use -r preview for tech-preview paths (registry.redhat.io/openshift-lightspeed-tech-preview/...).

Resolves oras resolve <konflux_prefix>:<revision>, then rewrites konflux_prefixstable_prefix in the digest URL. External entries (no konflux_prefix) are unchanged.

Konflux-managed entries must keep konflux_prefix and stable_prefix. See docs/olm-bundle-management.md.

Optional: hack/snapshot_to_image_list.sh only to discover new revision values from Konflux when oc is available; then run related_images_from_quay.sh again.

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 name field includes a v prefix (e.g., lightspeed-operator.v1.0.8)
  • The CSV version field 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.json uses stable registry.redhat.io images for Konflux-managed entries (via konflux_prefixstable_prefix mapping)
  • External/manual entries (no snapshot_component) are pinned correctly and unchanged by prefix mapping
  • bundle.Dockerfile has release=X.Y.Z and version=X.Y.Z
  • CSV name field: lightspeed-operator.vX.Y.Z (with v prefix)
  • CSV version field: X.Y.Z (without prefix)
  • CSV relatedImages and deployment args match related_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.json refreshed with -r stable
  • bundle.Dockerfile updated (lines 63, 66)
  • bundle/manifests/lightspeed-operator.clusterserviceversion.yaml name updated (line ~58, with v prefix)
  • bundle/manifests/lightspeed-operator.clusterserviceversion.yaml version updated (line ~715, without prefix)
  • Bundle regenerated with make bundle BUNDLE_TAG=X.Y.Z or hack/update_bundle.sh -v X.Y.Z -i related_images.json
  • operator-sdk bundle validate ./bundle passes
  • 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) ❌ Konflux-managed entries missing konflux_prefix / stable_prefix (stable refresh cannot map to product registry) ❌ Merging dev quay images from /update-bundle dev to main without re-running this skill

Related

  • /update-bundle dev — PR/CI (related_images_from_quay.sh -r ci)
  • docs/olm-bundle-management.md — bundle structure
  • hack/related_images_from_quay.sh — Quay digest refresh
  • hack/release_tools.md — release tooling

Plus de skills de openshift

openshift-expert
openshift
Expert de la plateforme OpenShift et de Kubernetes avec une connaissance approfondie de l'architecture des clusters, des opérateurs, du réseau, du stockage, du dépannage et des pipelines CI/CD. Utilisez…
official
find-token
openshift
Trouvez le jeton de vérification caché. Exécutez le script find-token pour récupérer un jeton unique.
official
code-review
openshift
Examiner une demande de tirage pour la qualité du code, l'exactitude et les conventions du projet. Utiliser lorsque l'utilisateur demande de réviser une PR, une revue de code, ou d'examiner des modifications sur une…
official
css-review
openshift
Examiner le CSS pour le style de codage, l'utilisation des tokens PatternFly et les bonnes pratiques. Utiliser lorsque l'utilisateur demande de réviser du CSS, vérifier des styles ou auditer des fichiers CSS.
official
review-readmes
openshift
Examiner tous les fichiers README.md du dépôt pour détecter les fautes de frappe, erreurs et informations obsolètes. Utiliser lorsque l'utilisateur demande de vérifier les README, de contrôler l'exactitude de la documentation, ou…
official
review-skills
openshift
Examiner les compétences IA du projet pour détecter les doublons, les références obsolètes, les erreurs et les problèmes structurels. Utiliser lorsque l'utilisateur demande de réviser les compétences, d'auditer les compétences, de vérifier…
official
test
openshift
Exécute des tests de bout en bout filtrés par balise. À utiliser lorsque l'utilisateur demande d'exécuter des tests, de lancer Playwright, ou de tester une balise de fonctionnalité spécifique comme @core ou @attach.
official
unused-exports
openshift
Trouve les symboles exportés qui ne sont jamais importés par un autre fichier. À utiliser lorsque l'utilisateur dit "vérifier les exports", "exports inutilisés" ou demande de nettoyer les exports.
official