Skip to main content

version-update

Release workflow: refresh stable related images and generate a selected v1 classic or v2 agentic OLM bundle. Equivalent to /update-bundle release <v1|v2> <X.Y.Z>.

Informations de source

Dépôt
openshift/lightspeed-operator
Dernière activité de la source
23 septembre 2026 à 17:02
Langue détectée de SKILL.md
anglais
Étoiles
17
Forks
59

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
version-update
description
Release workflow: refresh stable related images and generate a selected v1 classic or v2 agentic OLM bundle. Equivalent to /update-bundle release <v1|v2> <X.Y.Z>.
disable-model-invocation
true
# Version Update (Release) Invoke with: ```text /version-update <v1|v2> <X.Y.Z> /update-bundle release <v1|v2> <X.Y.Z> ``` Examples: ```text /version-update v1 1.2.1 /version-update v2 2.0.0 ``` Not for PR/CI — use `/update-bundle dev`. ## Variant contract | Variant | Release version | Bundle content | OCP compatibility | |---|---|---|---| | `v1` | `1.x.y` | Classic OLS only | `v4.16-v4.22` | | `v2` | `2.x.y` | Classic OLS plus agentic components | `>=v5.0` | Do not mix a selector and major version. The generator rejects invalid pairs: ```text v1 + 2.x.y → invalid v2 + 1.x.y → invalid ``` ## Bundle sources and generated output The variant CSV templates are the authoritative bundle inputs: ```text 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: ```text 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`. ```bash ./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: ```text 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: ```bash make manifests ``` For v2, first synchronize the pinned agentic contract when that target is available: ```bash 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`. ```bash # 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: ```bash ./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 ```bash operator-sdk bundle validate ./bundle ``` Verify the selected output: ```bash 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: ```text 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: ```text bundles revision snapshot_component snapshot_source konflux_prefix stable_prefix operator_arg operator_target ``` ## Step 4: Review and commit ```bash 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: ```bash 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.
Voir sur GitHub