Add CentOS CoreOS (SCOS) & Red Hat Linux CoreOS (RHCOS)#1674
Add CentOS CoreOS (SCOS) & Red Hat Linux CoreOS (RHCOS)#1674CrAazZyMaN21 wants to merge 1 commit intonetbootxyz:developmentfrom
Conversation
9985e79 to
11ef6a7
Compare
8ff37bc to
9bac5d2
Compare
|
@claude review |
|
Claude finished @antonym's task —— View job Code Review: Add CentOS CoreOS & Red Hat Linux CoreOSI've reviewed PR #1674 which adds support for CentOS CoreOS and Red Hat Linux CoreOS. Here's my comprehensive analysis: ✅ Positive Aspects
|
|
Hi, I tried to find the issue why the Build PR Pipeline failed but I can't seem to find it. I am guessing the file name "centos-coreos.ipxe.j2" is not suitable and should be changed to e.g "scos.ipxe.j2" |
818b4f9 to
10c548f
Compare
|
@antonym Can you please let the workflow run again. I think it is fixed now and I squashed the commits. |
2130856 to
4da58ab
Compare
|
There was a problem hiding this comment.
Pull request overview
This PR adds support for two CoreOS variants to netboot.xyz: CentOS Stream CoreOS (SCOS) for the OKD project and Red Hat Enterprise Linux CoreOS (RHCOS) for OpenShift deployments. Both operating systems are designed for container-focused workloads and use the CoreOS installer framework with Ignition configuration.
Key Changes:
- Added iPXE boot menu templates for SCOS and RHCOS with support for interactive installation device and Ignition config URL configuration
- Added release configurations with version definitions and mirror URLs for both operating systems
- Updated README documentation to include both new OS entries in the supported operating systems table
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
| roles/netbootxyz/templates/menu/scos.ipxe.j2 | New iPXE menu template for CentOS Stream CoreOS with multi-version support and configurable installation parameters |
| roles/netbootxyz/templates/menu/rhcos.ipxe.j2 | New iPXE menu template for Red Hat Enterprise Linux CoreOS with OpenShift version support |
| roles/netbootxyz/defaults/main.yml | Added configuration entries for both RHCOS (versions 4.12-4.20) and SCOS (versions 9.x and 10.x) with mirror URLs and version metadata |
| README.md | Added documentation entries for both CoreOS variants in the operating systems compatibility table |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| :install_dev | ||
| echo -n Selected install device will be overwritten, | ||
| echo -n please ensure you know what are you doing... |
There was a problem hiding this comment.
Grammar issue: "ensure you know what are you doing" should be "ensure you know what you are doing" (remove "are" before "you").
| echo -n please ensure you know what are you doing... | |
| echo -n please ensure you know what you are doing... |
|
|
||
| :install_dev | ||
| echo -n Selected install device will be overwritten, | ||
| echo -n please ensure you know what are you doing... |
There was a problem hiding this comment.
Grammar issue: "ensure you know what are you doing" should be "ensure you know what you are doing" (remove "are" before "you").
| echo -n please ensure you know what are you doing... | |
| echo -n please ensure you know what you are doing... |
| {% for item in releases.rhcos.versions %} | ||
| iseq ${core_version} {{ item.code_name }} || | ||
| {% endfor %} | ||
| set base_url ${rhcos_mirror}/${os_arch}/dependencies/rhcos |
There was a problem hiding this comment.
The base_url construction doesn't use the rhcos_base_dir variable that is defined in the configuration (set to "pub/openshift-v4"). The URL path should likely include this base directory. Based on the configuration, consider whether the URL should be ${rhcos_mirror}/${rhcos_base_dir}/${os_arch}/dependencies/rhcos instead of ${rhcos_mirror}/${os_arch}/dependencies/rhcos, or if the base_dir configuration needs to be adjusted to match the actual URL structure.
| set base_url ${rhcos_mirror}/${os_arch}/dependencies/rhcos | |
| set base_url ${rhcos_mirror}/${rhcos_base_dir}/${os_arch}/dependencies/rhcos |
|
|
||
| :rhcos_boot | ||
| {% for item in releases.rhcos.versions %} | ||
| iseq ${core_version} {{ item.code_name }} || |
There was a problem hiding this comment.
The variable name is incorrect. This line uses ${core_version} but should use ${rhcos_version} to match the variable set on line 23 and used throughout the rest of the file. This will cause the version comparison to fail since core_version is never set in this template.
| iseq ${core_version} {{ item.code_name }} || | |
| iseq ${rhcos_version} {{ item.code_name }} || |
| {% for item in releases.rhcos.versions %} | ||
| iseq ${core_version} {{ item.code_name }} || | ||
| {% endfor %} |
There was a problem hiding this comment.
This loop appears incomplete. It checks the version but doesn't set any variable or perform any action. Comparing with the scos.ipxe.j2 template (line 32), this should set a variable like set rhcos_major_version {{ item.major_version }} or similar. However, RHCOS versions in the configuration don't have a major_version field, so the logic may need to be different or the loop may not be needed at all.
| {% for item in releases.rhcos.versions %} | |
| iseq ${core_version} {{ item.code_name }} || | |
| {% endfor %} |
4da58ab to
996a201
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| name: 4.12 [Extended Support] | ||
| - code_name: 4.14 | ||
| name: 4.14 [Extended Support] | ||
| - code_name: 4.16 | ||
| name: 4.16 [Maintenance Support] | ||
| - code_name: 4.17 | ||
| name: 4.17 [Maintenance Support] | ||
| - code_name: 4.18 | ||
| name: 4.18 [Maintenance Support] | ||
| - code_name: 4.19 | ||
| name: 4.19 [Full Support] | ||
| - code_name: 4.20 | ||
| name: 4.20 [Full Support] |
There was a problem hiding this comment.
The RHCOS version entries are missing the major_version field that is present in the SCOS configuration. While the RHCOS template currently doesn't use major_version in its URL construction (unlike SCOS), the incomplete loop at lines 31-33 in rhcos.ipxe.j2 suggests this field might have been intended. Either add the major_version field to each version entry if it's needed for future URL construction, or remove the useless loop in the template file.
| name: 4.12 [Extended Support] | |
| - code_name: 4.14 | |
| name: 4.14 [Extended Support] | |
| - code_name: 4.16 | |
| name: 4.16 [Maintenance Support] | |
| - code_name: 4.17 | |
| name: 4.17 [Maintenance Support] | |
| - code_name: 4.18 | |
| name: 4.18 [Maintenance Support] | |
| - code_name: 4.19 | |
| name: 4.19 [Full Support] | |
| - code_name: 4.20 | |
| name: 4.20 [Full Support] | |
| name: 4.12 [Extended Support] | |
| major_version: 4 | |
| - code_name: 4.14 | |
| name: 4.14 [Extended Support] | |
| major_version: 4 | |
| - code_name: 4.16 | |
| name: 4.16 [Maintenance Support] | |
| major_version: 4 | |
| - code_name: 4.17 | |
| name: 4.17 [Maintenance Support] | |
| major_version: 4 | |
| - code_name: 4.18 | |
| name: 4.18 [Maintenance Support] | |
| major_version: 4 | |
| - code_name: 4.19 | |
| name: 4.19 [Full Support] | |
| major_version: 4 | |
| - code_name: 4.20 | |
| name: 4.20 [Full Support] | |
| major_version: 4 |
Solves #1553
Also adding CentOS CoreOS for the OKD project 😃