version-update

Релизный процесс для main: обновить related_images.json стабильными образами Konflux (-r stable), увеличить версию bundle/CSV, перегенерировать и проверить 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.

Больше skills от openshift

openshift-docs
openshift
Поиск и чтение документации OpenShift Container Platform в формате markdown. Используйте, когда пользователь спрашивает о функциях OpenShift, конфигурации, установке,…
triage-leaked-infra
openshift
Оцените, безопасно ли удалять AWS VPC или набор инфраструктуры из HyperShift CI. Используйте, когда пользователь вставляет вывод cleanleaked и спрашивает «можно ли это удалить?», «безопасно…
openshift-expert
openshift
Эксперт по платформе OpenShift и Kubernetes с глубокими знаниями архитектуры кластеров, операторов, сетей, хранилищ, устранения неполадок и CI/CD-пайплайнов. Используйте…
Konflux Archived PipelineRuns
openshift
Обеспечивает доступ к архивированным Konflux PipelineRuns, TaskRuns и логам подов через KubeArchive. Автоматически применяется при проверке результатов Konflux PipelineRun, расследовании…
backport
openshift
Переносить коммиты или PR из основной ветки в релизную. Используется, когда пользователь просит выполнить backport, cherry-pick или перенос изменений между ветками, а также при разрешении…
rebase
openshift
Переместить текущую ветку на её базовую ветку, разрешить все конфликты и проверить, что линтинг, i18n и сборка проходят. Используйте, когда пользователь просит выполнить rebase, обновление или синхронизацию…
Build CPO Image
openshift
Собрать и отправить образ контейнера control-plane-operator. Автоматически применяется при тестировании изменений CPO, требующих развертывания на живом кластере.
find-complexity
openshift
Находит функции и методы с высокой цикломатической сложностью, чрезмерной длиной или слишком большим количеством параметров. Используется, когда пользователь просит найти сложный код, сложность…