version-update

Workflow de release pour main : actualiser related_images.json avec les images Konflux stables (-r stable), incrémenter la version du bundle/CSV, régénérer et valider le bundle.…

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

Version Update (Release)

Invoke with:

/version-update <v1|v2> <X.Y.Z>
/update-bundle release <v1|v2> <X.Y.Z>

Examples:

/version-update v1 1.2.1
/version-update v2 2.0.0

Not for PR/CI — use /update-bundle dev.

Variant contract

VariantRelease versionBundle contentOCP compatibility
v11.x.yClassic OLS onlyv4.16-v4.22
v22.x.yClassic OLS plus agentic components>=v5.0

Do not mix a selector and major version. The generator rejects invalid pairs:

v1 + 2.x.y → invalid
v2 + 1.x.y → invalid

Bundle sources and generated output

The variant CSV templates are the authoritative bundle inputs:

config/manifests/bases/lightspeed-operator-v1.clusterserviceversion.yaml
config/manifests/bases/lightspeed-operator-v2.clusterserviceversion.yaml

hack/update_bundle.sh selects the requested template and generates:

bundle/manifests/lightspeed-operator.clusterserviceversion.yaml
bundle/metadata/annotations.yaml
bundle.Dockerfile

Do not edit those generated files as the source of a release version. The operator-sdk generation step writes the selected BUNDLE_TAG into the output CSV.

hack/bundle.Dockerfile is the Dockerfile template copied to bundle.Dockerfile during generation. Update the template only when the released bundle image labels must change.

Step 1: Refresh related_images.json from stable images

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. The tool resolves each Konflux-managed entry and replaces its konflux_prefix with its stable_prefix; entries with no Konflux prefix are unchanged.

Keep the bundles selectors intact:

shared entries       → ["v1", "v2"]
agentic-only entries → ["v2"]
no bundles field     → selected for both variants

Optional: use hack/snapshot_to_image_list.sh only to discover new Konflux revisions when oc is available, then rerun the stable refresh above.

If CRDs or RBAC changed since the last release, generate them before the bundle:

make manifests

For v2, first synchronize the pinned agentic contract when that target is available:

make sync-agentic-crds

Step 2: Generate the selected bundle

Use the normal Make target. It supplies the required related_images.json input and passes the selector to hack/update_bundle.sh.

# Classic OCP 4.x release
make bundle BUNDLE_VARIANT=v1 BUNDLE_TAG=1.2.1

# Agentic OCP 5.0+ release
make bundle BUNDLE_VARIANT=v2 BUNDLE_TAG=2.0.0

Direct script use requires the selector and image list explicitly:

./hack/update_bundle.sh v1 -v 1.2.1 -i related_images.json
./hack/update_bundle.sh v2 -v 2.0.0 -i related_images.json

Step 3: Validate the generated bundle

operator-sdk bundle validate ./bundle

Verify the selected output:

CSV=bundle/manifests/lightspeed-operator.clusterserviceversion.yaml

yq '.metadata.name' "$CSV"
yq '.metadata.annotations."com.redhat.openshift.versions"' \
  bundle/metadata/annotations.yaml
yq -r '.spec.relatedImages[].name' "$CSV" | sort

Expected results:

v1:
- CSV version/name is 1.x.y
- annotation is v4.16-v4.22
- no lightspeed-agentic-* related images or deployment arguments

v2:
- CSV version/name is 2.x.y
- annotation is >=v5.0
- includes lightspeed-agentic-operator, agentic console, alerts adapter,
  and sandbox related images

The generated CSV must not contain source-only image metadata:

bundles
revision
snapshot_component
snapshot_source
konflux_prefix
stable_prefix
operator_arg
operator_target

Step 4: Review and commit

git diff -- related_images.json hack/bundle.Dockerfile bundle/

Confirm:

  • Stable image digests are used for Konflux-managed entries.
  • bundles selectors are present only in related_images.json, not in the CSV.
  • The generated CSV version has the required major version.
  • The generated OCP compatibility annotation matches the selected variant.
  • Related images and deployment arguments match the selected variant.
  • operator-sdk bundle validate ./bundle passes.

Commit only when requested:

git add related_images.json hack/bundle.Dockerfile bundle/
git commit -m "OLS-XXXX Release vX.Y.Z"

Common mistakes

  • Omitting v1 or v2 when calling hack/update_bundle.sh.
  • Using a 1.x version with v2, or a 2.x version with v1.
  • Editing the generated CSV instead of regenerating it with BUNDLE_TAG.
  • Removing image bundles selectors during a stable-image refresh.
  • Publishing a v1 bundle with agentic images or arguments.
  • Publishing a v2 bundle without the synchronized agentic CRD/RBAC contract.
  • Merging CI/Quay development image references without refreshing stable images.

Related

  • /update-bundle dev — PR/CI workflow.
  • docs/olm-bundle-management.md — bundle structure and image metadata.
  • hack/related_images_from_quay.sh — stable digest refresh.
  • hack/release_tools.md — bundle release tooling.

Plus de skills de openshift

openshift-docs
openshift
Rechercher et lire la documentation d’OpenShift Container Platform au format markdown. À utiliser lorsque l’utilisateur pose des questions sur les fonctionnalités, la configuration, l’installation d’OpenShift, etc.
triage-leaked-infra
openshift
Évaluer si un VPC AWS ou un ensemble d'infrastructure provenant de l'IC HyperShift est sûr à supprimer. À utiliser lorsque l'utilisateur colle une sortie cleanleaked et demande « puis-je supprimer cela ? », « est-…
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…
Konflux Archived PipelineRuns
openshift
Accède aux PipelineRuns, TaskRuns et logs de pods Konflux archivés via KubeArchive. S’applique automatiquement lors de la vérification des résultats de PipelineRun Konflux, de l’investigation…
backport
openshift
Backporter des commits ou des PR de la branche principale vers une branche de release. Utiliser lorsque l'utilisateur demande de backporter, cherry-picker ou porter des modifications entre branches, ou lors de la résolution de…
rebase
openshift
Rebaser la branche courante sur sa branche de base, résoudre tous les conflits, et vérifier que lint, i18n et build passent. Utiliser lorsque l'utilisateur demande de rebaser, mettre à jour ou synchroniser…
Build CPO Image
openshift
Construire et pousser l'image conteneur du control-plane-operator. S'applique automatiquement lors du test de modifications CPO nécessitant un déploiement sur un cluster en direct.
find-complexity
openshift
Trouve les fonctions et méthodes avec une complexité cyclomatique élevée, une longueur excessive ou trop de paramètres. À utiliser lorsque l'utilisateur demande de trouver du code complexe, de la complexité…