Update Talos Linux v1.10.3 and fix assets - #1006
Conversation
|
Caution Review failedThe pull request is closed. """ WalkthroughThis change updates the handling of installer artifacts in CI workflows and tests. The GitHub Actions workflow now uploads both the installer YAML and a raw disk image as a single combined artifact. Test scripts and Makefile commands are adjusted to use these files directly, removing reliance on environment variables and external downloads. Several Talos installer profile YAMLs are updated to newer image versions. Changes
Sequence Diagram(s)sequenceDiagram
participant GitHub Actions
participant Artifact Storage
participant Test Runner
GitHub Actions->Artifact Storage: Upload combined artifact "cozystack-artefacts" containing installer YAML and nocloud image
Test Runner->Artifact Storage: Download "cozystack-artefacts" into _out/assets/
Test Runner->Test Runner: Run tests using local asset files directly (kubectl apply from file)
Possibly related PRs
Suggested reviewers
Poem
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (12)
✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
19c5246 to
22509bb
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (9)
.github/workflows/pull-requests.yaml(1 hunks)hack/e2e-cluster.bats(2 hunks)packages/core/installer/images/talos/profiles/initramfs.yaml(1 hunks)packages/core/installer/images/talos/profiles/installer.yaml(1 hunks)packages/core/installer/images/talos/profiles/iso.yaml(1 hunks)packages/core/installer/images/talos/profiles/kernel.yaml(1 hunks)packages/core/installer/images/talos/profiles/metal.yaml(1 hunks)packages/core/installer/images/talos/profiles/nocloud.yaml(1 hunks)packages/core/testing/Makefile(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: Build
🔇 Additional comments (17)
packages/core/installer/images/talos/profiles/kernel.yaml (3)
6-6: Bump profile version to v1.10.3
Consistent upgrade from v1.10.1.
13-13: Update base installer imageRef to v1.10.3
Matches the new Talos release tag.
15-23: Refresh systemExtensions to v1.10.3 images and recent firmware dates
All referenced extensions (amd-ucode, bnx2-bnx2x, intel-ice-firmware, qlogic-firmware, drbd, zfs) align with the new release and date tags.packages/core/installer/images/talos/profiles/metal.yaml (3)
6-6: Bump profile version to v1.10.3
Version increment is correct and consistent.
13-13: Update base installer imageRef to v1.10.3
Aligns with the updated Talos installer release.
15-23: Refresh systemExtensions to v1.10.3 images and recent firmware dates
Firmware and extension tags (amd-ucode, bnx2-bnx2x, intel-ice-firmware, qlogic-firmware, drbd, zfs) updated correctly..github/workflows/pull-requests.yaml (1)
44-47: Include raw disk image in artifact upload
The additional_out/assets/nocloud-amd64.raw.xzis now bundled undercozystack-installer, matching downstream test expectations.packages/core/installer/images/talos/profiles/nocloud.yaml (3)
6-6: Bump profile version to v1.10.3
Upgraded from v1.10.1 as intended.
13-13: Update base installer imageRef to v1.10.3
Matches the new Talos version.
15-23: Refresh systemExtensions to v1.10.3 images and recent firmware dates
All extension tags (amd-ucode, bnx2-bnx2x, intel-ice-firmware, qlogic-firmware, drbd, zfs) are correctly bumped.packages/core/installer/images/talos/profiles/initramfs.yaml (2)
6-6: Version update looks good.The version bump from v1.10.1 to v1.10.3 is properly applied.
13-13: Base installer image reference updated correctly.The base installer image has been updated to match the new version v1.10.3.
packages/core/installer/images/talos/profiles/installer.yaml (1)
6-23: Consistent version and system extension updates.The updates in this installer profile are consistent with the initramfs profile, which is good for maintaining uniformity across all Talos profiles.
packages/core/installer/images/talos/profiles/iso.yaml (1)
6-23: Excellent consistency across all Talos profiles.The iso profile updates maintain perfect consistency with the initramfs and installer profiles, ensuring uniform Talos v1.10.3 deployment across all output formats.
hack/e2e-cluster.bats (3)
6-16: Improved asset verification with explicit file checks.The new approach of checking for specific installer asset files is more explicit and provides better error messaging than the previous environment variable check.
248-249: Better approach using direct file reference.Applying the installer manifest directly from the file is more reliable than using an environment variable. This change aligns well with the artifact-based CI workflow updates.
7-13:Details
✅ Verification successful
Verify file path consistency across the pipeline.
Ensure that the asset file paths
_out/assets/cozystack-installer.yamland_out/assets/nocloud-amd64.raw.xzare consistent with where these files are generated and placed by the CI workflow.
🏁 Script executed:
#!/bin/bash # Verify that the expected asset paths are used consistently across the repository echo "Checking for references to installer asset paths..." # Search for cozystack-installer.yaml references echo "=== cozystack-installer.yaml references ===" rg "cozystack-installer\.yaml" --type yaml --type sh # Search for nocloud-amd64.raw.xz references echo "=== nocloud-amd64.raw.xz references ===" rg "nocloud-amd64\.raw\.xz" --type yaml --type sh # Search for _out/assets/ path references echo "=== _out/assets/ path references ===" rg "_out/assets/" --type yaml --type shLength of output: 1532
Asset path consistency verified
I’ve confirmed that bothhack/e2e-cluster.batsandhack/upload-assets.shreference_out/assets/cozystack-installer.yamland_out/assets/nocloud-amd64.raw.xzin the same location. No discrepancies were found—no changes needed here.
| - imageRef: ghcr.io/siderolabs/amd-ucode:20250509 | ||
| - imageRef: ghcr.io/siderolabs/amdgpu-firmware:20241110 | ||
| - imageRef: ghcr.io/siderolabs/bnx2-bnx2x:20250410 | ||
| - imageRef: ghcr.io/siderolabs/bnx2-bnx2x:20250509 | ||
| - imageRef: ghcr.io/siderolabs/i915-ucode:20241110 | ||
| - imageRef: ghcr.io/siderolabs/intel-ice-firmware:20250410 | ||
| - imageRef: ghcr.io/siderolabs/intel-ice-firmware:20250509 | ||
| - imageRef: ghcr.io/siderolabs/intel-ucode:20250211 | ||
| - imageRef: ghcr.io/siderolabs/qlogic-firmware:20250410 | ||
| - imageRef: ghcr.io/siderolabs/drbd:9.2.13-v1.10.1 | ||
| - imageRef: ghcr.io/siderolabs/zfs:2.3.1-v1.10.1 | ||
| - imageRef: ghcr.io/siderolabs/qlogic-firmware:20250509 | ||
| - imageRef: ghcr.io/siderolabs/drbd:9.2.13-v1.10.3 | ||
| - imageRef: ghcr.io/siderolabs/zfs:2.3.2-v1.10.3 |
There was a problem hiding this comment.
💡 Verification agent
🧩 Analysis chain
Verify system extension image availability.
Multiple system extensions have been updated to newer versions. Please ensure these image references are valid and available.
🏁 Script executed:
#!/bin/bash
# Verify that the updated system extension images exist in the registry
images=(
"ghcr.io/siderolabs/amd-ucode:20250509"
"ghcr.io/siderolabs/bnx2-bnx2x:20250509"
"ghcr.io/siderolabs/intel-ice-firmware:20250509"
"ghcr.io/siderolabs/qlogic-firmware:20250509"
"ghcr.io/siderolabs/drbd:9.2.13-v1.10.3"
"ghcr.io/siderolabs/zfs:2.3.2-v1.10.3"
)
for image in "${images[@]}"; do
echo "Checking $image..."
if ! docker manifest inspect "$image" >/dev/null 2>&1; then
echo "ERROR: Image $image not found or not accessible"
exit 1
fi
done
echo "All system extension images are accessible"Length of output: 645
Fix missing initramfs system extension image tags
The verification script indicates that at least one of the updated images is not found in the registry. Please confirm and correct the tags for all system extensions in packages/core/installer/images/talos/profiles/initramfs.yaml:
• Line 15: ghcr.io/siderolabs/amd-ucode:20250509 → image not found
• (Re-run verification for the remaining images once the above is fixed)
Action items:
- Verify that each tag exists in the GHCR repository (
docker manifest inspect …) - Update any invalid or unpublished tags to the correct, available versions
🤖 Prompt for AI Agents
In packages/core/installer/images/talos/profiles/initramfs.yaml around lines 15
to 23, some system extension image tags, such as
ghcr.io/siderolabs/amd-ucode:20250509, are not found in the registry. Verify the
existence of each image tag using docker manifest inspect or a similar command,
then update any invalid or unpublished tags to the correct, available versions
in the YAML file to ensure all image references are valid and accessible.
793ba64 to
0d35051
Compare
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (1)
packages/core/installer/images/talos/profiles/nocloud.yaml (1)
13-13: Update baseInstaller image reference
The base installer has been switched to the new digest‐based registry and version.There's a trailing space at the end of this line which will trigger a lint error.
Apply this diff to remove it:- imageRef: factory.talos.dev/nocloud-installer/376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba:v1.10.3 + imageRef: factory.talos.dev/nocloud-installer/376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba:v1.10.3🧰 Tools
🪛 YAMLlint (1.37.1)
[error] 13-13: trailing spaces
(trailing-spaces)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (10)
.github/workflows/pull-requests.yaml(2 hunks)Makefile(1 hunks)hack/e2e-cluster.bats(3 hunks)packages/core/installer/images/talos/profiles/initramfs.yaml(1 hunks)packages/core/installer/images/talos/profiles/installer.yaml(1 hunks)packages/core/installer/images/talos/profiles/iso.yaml(1 hunks)packages/core/installer/images/talos/profiles/kernel.yaml(1 hunks)packages/core/installer/images/talos/profiles/metal.yaml(1 hunks)packages/core/installer/images/talos/profiles/nocloud.yaml(1 hunks)packages/core/testing/Makefile(1 hunks)
✅ Files skipped from review due to trivial changes (2)
- packages/core/installer/images/talos/profiles/initramfs.yaml
- packages/core/installer/images/talos/profiles/kernel.yaml
🚧 Files skipped from review as they are similar to previous changes (7)
- .github/workflows/pull-requests.yaml
- Makefile
- packages/core/installer/images/talos/profiles/metal.yaml
- packages/core/testing/Makefile
- packages/core/installer/images/talos/profiles/iso.yaml
- packages/core/installer/images/talos/profiles/installer.yaml
- hack/e2e-cluster.bats
🧰 Additional context used
🪛 YAMLlint (1.37.1)
packages/core/installer/images/talos/profiles/nocloud.yaml
[error] 13-13: trailing spaces
(trailing-spaces)
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: Build
🔇 Additional comments (7)
packages/core/installer/images/talos/profiles/nocloud.yaml (7)
6-6: Version bump to v1.10.3
The profile version has been correctly updated to v1.10.3, aligning with the rest of the Talos installers.
15-15: Updateamd-ucodesystem extension
The firmware image for AMD microcode has been correctly bumped to the latest May 2025 build.
17-17: Updatebnx2-bnx2xsystem extension
The Broadcom NIC firmware was updated to the May 2025 build as intended.
19-19: Updateintel-ice-firmwaresystem extension
Intel ICE firmware is now pinned to the May 2025 release, consistent with other extensions.
21-21: Updateqlogic-firmwaresystem extension
QLogic firmware has been updated to the latest build date as expected.
22-22: Updatedrbdsystem extension
DRBD version has been correctly aligned to 9.2.13 for Talos v1.10.3.
23-23: Updatezfssystem extension
ZFS has been bumped to 2.3.2 for compatibility with Talos v1.10.3.
80021ec to
ba6aab3
Compare
There was a problem hiding this comment.
Actionable comments posted: 0
♻️ Duplicate comments (2)
packages/core/installer/images/talos/profiles/initramfs.yaml (1)
15-21: Verify updated systemExtension image tagsSeveral system extension images have been bumped (e.g.,
amd-ucode:20250509,bnx2-bnx2x:20250509,intel-ice-firmware:20250509, etc.). Please ensure each new tag exists and is accessible in GHCR.#!/bin/bash # Verify initramfs system extension images in GHCR images=( "ghcr.io/siderolabs/amd-ucode:20250509" "ghcr.io/siderolabs/bnx2-bnx2x:20250509" "ghcr.io/siderolabs/intel-ice-firmware:20250509" "ghcr.io/siderolabs/qlogic-firmware:20250509" "ghcr.io/siderolabs/drbd:9.2.13-v1.10.3" "ghcr.io/siderolabs/zfs:2.3.2-v1.10.3" ) for img in "${images[@]}"; do echo "Checking $img..." if ! docker manifest inspect "$img" >/dev/null 2>&1; then echo "ERROR: $img not found or accessible" exit 1 fi done echo "All initramfs system extension images are available"packages/core/installer/images/talos/profiles/installer.yaml (1)
15-21: Verify updated systemExtension image tagsThe system extension images were bumped here as well (e.g.,
amd-ucode:20250509,zfs:2.3.2-v1.10.3). Please re-run a verification to confirm each image tag is published and accessible.#!/bin/bash # Verify installer profile system extension images in GHCR images=( "ghcr.io/siderolabs/amd-ucode:20250509" "ghcr.io/siderolabs/bnx2-bnx2x:20250509" "ghcr.io/siderolabs/intel-ice-firmware:20250509" "ghcr.io/siderolabs/qlogic-firmware:20250509" "ghcr.io/siderolabs/drbd:9.2.13-v1.10.3" "ghcr.io/siderolabs/zfs:2.3.2-v1.10.3" ) for img in "${images[@]}"; do echo "Checking $img..." if ! docker manifest inspect "$img" >/dev/null 2>&1; then echo "ERROR: $img not found or accessible" exit 1 fi done echo "All installer system extension images are available"
🧹 Nitpick comments (1)
packages/core/installer/hack/gen-profiles.sh (1)
79-79: Use dynamic TALOS_VERSION for baseInstallerThe
baseInstaller.imageRefis hardcoded to v1.10.3, which will require manual updates on each bump. Consider leveraging the dynamically fetched$TALOS_VERSIONinstead:- imageRef: "ghcr.io/siderolabs/installer:v1.10.3" + imageRef: "ghcr.io/siderolabs/installer:${TALOS_VERSION}"This change will automatically align the installer imageRef with the pulled Talos version.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (11)
.github/workflows/pull-requests.yaml(2 hunks)Makefile(1 hunks)hack/e2e-cluster.bats(3 hunks)packages/core/installer/hack/gen-profiles.sh(2 hunks)packages/core/installer/images/talos/profiles/initramfs.yaml(1 hunks)packages/core/installer/images/talos/profiles/installer.yaml(1 hunks)packages/core/installer/images/talos/profiles/iso.yaml(1 hunks)packages/core/installer/images/talos/profiles/kernel.yaml(1 hunks)packages/core/installer/images/talos/profiles/metal.yaml(1 hunks)packages/core/installer/images/talos/profiles/nocloud.yaml(1 hunks)packages/core/testing/Makefile(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (8)
- Makefile
- packages/core/installer/images/talos/profiles/metal.yaml
- .github/workflows/pull-requests.yaml
- packages/core/testing/Makefile
- packages/core/installer/images/talos/profiles/iso.yaml
- packages/core/installer/images/talos/profiles/kernel.yaml
- hack/e2e-cluster.bats
- packages/core/installer/images/talos/profiles/nocloud.yaml
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: Test
🔇 Additional comments (5)
packages/core/installer/images/talos/profiles/initramfs.yaml (2)
6-6: Confirm version bump consistencyThe Talos profile version has been updated to v1.10.3, matching the PR objective and keeping it in sync with other profiles.
13-13: Approve baseInstaller image updateThe
baseInstaller.imageRefwas correctly updated to
ghcr.io/siderolabs/installer:v1.10.3.
This aligns with the new Talos version.packages/core/installer/images/talos/profiles/installer.yaml (2)
6-6: Confirm version bump consistencyThe installer profile version has been updated to v1.10.3, in line with other Talos profiles.
13-13: Approve baseInstaller image updateThe
baseInstaller.imageRefnow correctly references
ghcr.io/siderolabs/installer:v1.10.3.packages/core/installer/hack/gen-profiles.sh (1)
35-64: Approve expanded profile handlingRefactoring the profile generation into a
casestatement forinitramfs,kernel,iso,installer,metal, andnocloudenhances readability and simplifies future extensions.
b21c2fe to
e41b618
Compare
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (2)
.github/workflows/pull-requests.yaml (1)
43-48: Remove trailing whitespaceLine 48 contains trailing spaces, triggering a YAML lint warning. Please remove the extra whitespace to keep the file clean and prevent lint errors.
🧰 Tools
🪛 YAMLlint (1.37.1)
[error] 48-48: trailing spaces
(trailing-spaces)
.github/workflows/pull-requests-release.yaml (1)
62-64: Consider removing the file listing stepThe
ls -lh _out/assets/is useful for debugging but may add noise in regular CI runs. You could optionally remove or gate this step behind a debug flag.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (12)
.github/workflows/pull-requests-release.yaml(1 hunks).github/workflows/pull-requests.yaml(2 hunks)Makefile(1 hunks)hack/e2e-cluster.bats(3 hunks)packages/core/installer/hack/gen-profiles.sh(2 hunks)packages/core/installer/images/talos/profiles/initramfs.yaml(1 hunks)packages/core/installer/images/talos/profiles/installer.yaml(1 hunks)packages/core/installer/images/talos/profiles/iso.yaml(1 hunks)packages/core/installer/images/talos/profiles/kernel.yaml(1 hunks)packages/core/installer/images/talos/profiles/metal.yaml(1 hunks)packages/core/installer/images/talos/profiles/nocloud.yaml(1 hunks)packages/core/testing/Makefile(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- packages/core/installer/images/talos/profiles/installer.yaml
🚧 Files skipped from review as they are similar to previous changes (9)
- Makefile
- packages/core/testing/Makefile
- packages/core/installer/images/talos/profiles/kernel.yaml
- packages/core/installer/images/talos/profiles/iso.yaml
- packages/core/installer/hack/gen-profiles.sh
- packages/core/installer/images/talos/profiles/initramfs.yaml
- packages/core/installer/images/talos/profiles/nocloud.yaml
- hack/e2e-cluster.bats
- packages/core/installer/images/talos/profiles/metal.yaml
🧰 Additional context used
🪛 YAMLlint (1.37.1)
.github/workflows/pull-requests.yaml
[error] 48-48: trailing spaces
(trailing-spaces)
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: Test
🔇 Additional comments (6)
.github/workflows/pull-requests.yaml (3)
40-42: Approve Talos image build stepThe new step
make -C packages/core/installer talos-nocloudcorrectly builds the Talos NoCloud image as part of the build job, aligning with the updated CI artifact flow.
49-53: Approve Talos image artifact uploadUploading the Talos NoCloud image (
talos-nocloud) as a separate artifact ensures downstream jobs can access the raw disk image directly alongside the installer YAML.
77-82: Approve Talos image download in test jobThe test job now pulls down the
talos-nocloudartifact into_out/assets/, matching the build output and removing external dependencies..github/workflows/pull-requests-release.yaml (3)
37-50: Approve tag extraction from PR branchThe
actions/github-scriptblock enforces therelease-X.Y.Z[-suffix]naming convention and correctly outputstagfor downstream steps. This early validation helps catch misnamed release branches.
51-61: Approve download of required release assetsUsing
gh release downloadwith explicit--patternflags ensures that bothcozystack-installer.yamlandnocloud-amd64.raw.xzare fetched into_out/assets/before running tests.
66-66: Approve simplified test invocationSwitching from
make manifests && make testto justmake testmatches the new asset-driven workflow and avoids unnecessary manifest generation in the release CI.
4ddb5c2 to
2e708e4
Compare
Signed-off-by: Andrei Kvapil <kvapss@gmail.com>
2e708e4 to
f798cbd
Compare
Signed-off-by: Andrei Kvapil kvapss@gmail.com
Summary by CodeRabbit
New Features
Bug Fixes
Chores