version-update

Alur kerja rilis untuk main: segarkan related_images.json dengan gambar Konflux stabil (-r stable), naikkan versi bundle/CSV, hasilkan ulang dan validasi 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.

Lebih banyak skill dari openshift

openshift-docs
openshift
Cari dan baca dokumentasi OpenShift Container Platform dalam format markdown. Gunakan saat pengguna bertanya tentang fitur OpenShift, konfigurasi, instalasi,…
triage-leaked-infra
openshift
Menilai apakah VPC AWS atau set infrastruktur dari HyperShift CI aman untuk dihapus. Gunakan saat pengguna menempelkan output cleanleaked dan bertanya 'dapatkah saya menghapus ini?', 'apakah…
openshift-expert
openshift
Pakar platform OpenShift dan Kubernetes dengan pengetahuan mendalam tentang arsitektur klaster, operator, jaringan, penyimpanan, pemecahan masalah, dan pipeline CI/CD. Gunakan…
Konflux Archived PipelineRuns
openshift
Mengakses PipelineRun, TaskRun, dan log pod Konflux yang diarsipkan melalui KubeArchive. Diterapkan secara otomatis saat memeriksa hasil PipelineRun Konflux, menyelidiki…
backport
openshift
Backport komit atau PR dari cabang utama ke cabang rilis. Gunakan saat pengguna meminta untuk backport, cherry-pick, atau memindahkan perubahan antar cabang, atau saat menyelesaikan…
rebase
openshift
Rebase cabang saat ini ke cabang basisnya, selesaikan semua konflik, dan verifikasi lint, i18n, serta build berhasil. Gunakan saat pengguna meminta untuk rebase, memperbarui, atau menyinkronkan…
Build CPO Image
openshift
Bangun dan dorong citra container control-plane-operator. Diterapkan secara otomatis saat menguji perubahan CPO yang memerlukan penerapan ke klaster langsung.
find-complexity
openshift
Temukan fungsi dan metode dengan kompleksitas sikomatis tinggi, panjang berlebihan, atau terlalu banyak parameter. Gunakan saat pengguna meminta untuk menemukan kode yang kompleks, kompleksitas…