Skip to content

2026.1: Sync latest stackhpc/2025.1 - #2457

Open
Alex-Welsh wants to merge 13 commits into
stackhpc/2026.1from
sync-2025.1
Open

2026.1: Sync latest stackhpc/2025.1#2457
Alex-Welsh wants to merge 13 commits into
stackhpc/2026.1from
sync-2025.1

Conversation

@Alex-Welsh

Copy link
Copy Markdown
Member

No description provided.

Alex-Welsh and others added 12 commits July 21, 2026 10:54
Previously there was a hostname-related OVN bug that required a reboot
in the AIO CI instances to mitigate. It's been fixed for years[1] so
this change reverts the workaround. It'll speed up CI and it's better to
know if we regress.

[1] https://bugs.launchpad.net/kolla-ansible/+bug/2080552
The previous Rocky 9.8 host image came with broken python 3.9 which
caused issues starting deployments (`ASN1: NOT_ENOUGH_DATA`).
An updated python package was released[0] and the host image has been
rebuilt with this.

OFED kernel module has been built for the latest kernel this image
uses (`5.14.0.687.26.1.el9.8`).

0: https://errata.rockylinux.org/RLSA-2026:39798
Added Valkey migration script.
This checks how `kolla_enable_redis`` is evaluated.
If it's true, the script calls K-A's Valkey migration.
Otherwise, it's a NOOP.
The GitHub app using it was turned off last summer [1].

[1] https://github.com/apps/product-auto-label
This switches to an IPA builder fork which is required for centos-10
stream IPA images, which are required (currently) to provide a version
of qemu-img that can handle 4k sectors from Dell Perc RAID controllers
which don't support other block sizes.

Anyone not affected can carry on using stream-9 images until Rocky ones
exist.

We can drop this patch if we can backport
https://review.opendev.org/c/openstack/ironic-python-agent-builder/+/995589
Update kolla_base_distro_version_default_map to select Rocky 9
or Rocky 10 images for each host.
Add coderabbit review configuration
Also ensure that the playbook is safe to run on Ubuntu.
Add hook to reset-bls-entries after host package update
@Alex-Welsh
Alex-Welsh requested a review from a team as a code owner July 27, 2026 10:16
@github-actions github-actions Bot added the waiting-review PR is waiting for a review label Jul 27, 2026
@coderabbitai

coderabbitai Bot commented Jul 27, 2026

Copy link
Copy Markdown

Review Change Stack

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 193c987a-6b4e-4ade-8f49-1db2901538c6

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Updates repository review automation, host maintenance, deployment workflow, IPA and Kolla versions, Rocky image and repository pins, release notes, and upgrade prerequisite handling.

Changes

Kayobe maintenance updates

Layer / File(s) Summary
Review automation configuration
.coderabbit.yaml, .github/auto-label.yaml
CodeRabbit review settings and automation are configured, while the auto-labelling configuration is removed.
RedHat BLS reset hook
etc/kayobe/ansible/maintenance/reset-bls-entries.yml, etc/kayobe/hooks/overcloud-host-package-update/post.d/20-reset-bls-entries, etc/kayobe/hooks/.../releasenotes/*
BLS entry repair is restricted to RedHat systems and connected to the overcloud host package update hook with a release note.
Platform sources and version pins
etc/kayobe/ipa.yml, etc/kayobe/kolla/globals.yml, etc/kayobe/ofed.yml, etc/kayobe/pulp-*.yml, etc/kayobe/stackhpc.yml, releasenotes/notes/*
IPA and Kolla-Ansible sources, Rocky image selection, OFED modules, host images, repository pins, and related release notes are updated.
All-in-one workflow adjustment
.github/workflows/stackhpc-all-in-one.yml
The Rocky 9 OVN hostname-fix and reboot steps are removed from the workflow.
Upgrade prerequisite execution
tools/upgrade-prerequisites.sh
Adds prerequisite checks, jq installation, Redis detection, and conditional Valkey migration execution.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant CIJob
  participant upgrade_prerequisites
  participant Kayobe
  participant jq
  CIJob->>upgrade_prerequisites: execute upgrade prerequisites
  upgrade_prerequisites->>Kayobe: retrieve kolla_enable_redis configuration
  Kayobe-->>upgrade_prerequisites: return configuration dump
  upgrade_prerequisites->>jq: filter localhost Redis setting
  jq-->>upgrade_prerequisites: return Redis state
  upgrade_prerequisites->>Kayobe: run migrate-valkey when Redis is enabled
Loading

Possibly related PRs

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: aef53f1c-0500-4231-bd67-d2ad5e77fb5b

📥 Commits

Reviewing files that changed from the base of the PR and between 558ae9c and 921c27b.

📒 Files selected for processing (15)
  • .coderabbit.yaml
  • .github/auto-label.yaml
  • .github/workflows/stackhpc-all-in-one.yml
  • etc/kayobe/ansible/maintenance/reset-bls-entries.yml
  • etc/kayobe/hooks/overcloud-host-package-update/post.d/20-reset-bls-entries
  • etc/kayobe/hooks/overcloud-host-package-update/post.d/releasenotes/notes/reset-bls-entries-20375af82dfd3517.yaml
  • etc/kayobe/ipa.yml
  • etc/kayobe/kolla/globals.yml
  • etc/kayobe/ofed.yml
  • etc/kayobe/pulp-host-image-versions.yml
  • etc/kayobe/pulp-repo-versions.yml
  • etc/kayobe/stackhpc.yml
  • releasenotes/notes/r9-r10-kolla-base-distro-75078c4fbae4f785.yaml
  • releasenotes/notes/rocky-98-python-update-ca5e831d408a67ba.yaml
  • tools/upgrade-prerequisites.sh
💤 Files with no reviewable changes (2)
  • .github/auto-label.yaml
  • .github/workflows/stackhpc-all-in-one.yml
📜 Review details
⏰ Context from checks skipped due to timeout. (2)
  • GitHub Check: Ansible 2.20 lint with Python 3.12
  • GitHub Check: Ansible 2.19 lint with Python 3.12
🧰 Additional context used
🪛 Checkov (3.3.8)
etc/kayobe/ansible/maintenance/reset-bls-entries.yml

[low] 13-44: Ensure block is handling task errors properly

(CKV2_ANSIBLE_3)

🔇 Additional comments (13)
.coderabbit.yaml (1)

1-67: LGTM!

etc/kayobe/ansible/maintenance/reset-bls-entries.yml (1)

13-15: 🩺 Stability & Availability

Verify that fact gathering is guaranteed for this hook.

At Line 14, ansible_facts.os_family is evaluated before the block can be skipped, but this play does not explicitly set gather_facts: true. If the hook runner disables fact gathering or supplies incomplete facts, the hook will fail instead of safely doing nothing on non-RedHat hosts. Please confirm that the hook contract always gathers complete facts, or make that dependency explicit.

etc/kayobe/hooks/overcloud-host-package-update/post.d/20-reset-bls-entries (1)

1-1: LGTM!

etc/kayobe/hooks/overcloud-host-package-update/post.d/releasenotes/notes/reset-bls-entries-20375af82dfd3517.yaml (1)

1-5: LGTM!

etc/kayobe/ipa.yml (1)

25-32: LGTM!

etc/kayobe/kolla/globals.yml (1)

20-20: LGTM!

etc/kayobe/stackhpc.yml (1)

233-233: LGTM!

etc/kayobe/ofed.yml (1)

22-22: LGTM!

etc/kayobe/pulp-host-image-versions.yml (1)

4-5: LGTM!

etc/kayobe/pulp-repo-versions.yml (1)

39-40: LGTM!

Also applies to: 161-175

releasenotes/notes/r9-r10-kolla-base-distro-75078c4fbae4f785.yaml (1)

1-5: LGTM!

releasenotes/notes/rocky-98-python-update-ca5e831d408a67ba.yaml (1)

1-10: LGTM!

tools/upgrade-prerequisites.sh (1)

1-8: LGTM!

Also applies to: 12-27, 38-39

Comment thread tools/upgrade-prerequisites.sh Outdated
# NOTE(upgrade): This script is unique to each release. It may not be required
# for some releases.

set -ex

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/usr/bin/env bash
set +e

false | jq .
without_pipefail=$?

set -o pipefail
false | jq .
with_pipefail=$?

printf 'without pipefail=%s, with pipefail=%s\n' \
  "$without_pipefail" "$with_pipefail"

test "$without_pipefail" -eq 0
test "$with_pipefail" -ne 0

Repository: stackhpc/stackhpc-kayobe-config

Length of output: 205


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

file=tools/upgrade-prerequisites.sh

wc -l "$file"
sed -n '1,120p' "$file" | cat -n

Repository: stackhpc/stackhpc-kayobe-config

Length of output: 1513


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail
sed -n '1,120p' tools/upgrade-prerequisites.sh | cat -n

Repository: stackhpc/stackhpc-kayobe-config

Length of output: 1479


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

rg -n "configuration dump --var-name|jq \.localhost|enable_redis|enable_valkey" -S .

Repository: stackhpc/stackhpc-kayobe-config

Length of output: 1348


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

rg -n "configuration dump --var-name|jq \\.localhost|enable_redis|enable_valkey" -S .

Repository: stackhpc/stackhpc-kayobe-config

Length of output: 1348


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

python3 - <<'PY'
import json
samples = [
    {"localhost": True},
    {"localhost": "yes"},
    {"localhost": "true"},
]
for s in samples:
    print("input:", json.dumps(s))
    import subprocess, textwrap, os, tempfile
PY

Repository: stackhpc/stackhpc-kayobe-config

Length of output: 253


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

rg -n "configuration dump|kolla_enable_redis|kolla_enable_valkey|jq -r|jq \." -S tools etc doc

Repository: stackhpc/stackhpc-kayobe-config

Length of output: 1457


Enable pipefail here. set -e will not catch a failed kayobe configuration dump in the pipeline, so the migration can be skipped silently.

Comment thread tools/upgrade-prerequisites.sh Outdated
Comment on lines +31 to +32
enable_redis=$(kayobe configuration dump --var-name kolla_enable_redis -l localhost | jq .localhost)
if [[ $enable_redis == "true" || $enable_redis == "yes" ]]; then

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/usr/bin/env bash
json='{"localhost":"yes"}'

quoted=$(printf '%s\n' "$json" | jq .localhost)
raw=$(printf '%s\n' "$json" | jq -r .localhost)

printf 'quoted=%s, raw=%s\n' "$quoted" "$raw"
[[ $quoted == '"yes"' ]]
[[ $raw == yes ]]

Repository: stackhpc/stackhpc-kayobe-config

Length of output: 191


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

sed -n '1,80p' tools/upgrade-prerequisites.sh

Repository: stackhpc/stackhpc-kayobe-config

Length of output: 1206


Read the Redis flag as raw output. jq .localhost returns "yes" for the usual string value, so the shell comparison never matches and the Valkey migration is skipped. Use jq -r '.localhost' here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

waiting-review PR is waiting for a review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants