2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-09-12 04:26:24 +00:00
Commit Graph

345 Commits

Author SHA1 Message Date
Daniel Hilst b4579ef459 Merge pull request #7802 from VersatusHPC/refactor/networkutils-ip-validation
refactor(networkutils): remove the legacy validate_ip helper
2026-09-02 15:04:20 -03:00
Vinícius Ferrão b671879393 fix(anaconda): resolve image and master addresses only for hostnames 2026-09-01 11:18:05 -03:00
Vinícius Ferrão 825fbb8d2b refactor(netboot): expose install image policies 2026-09-01 10:50:24 -03:00
Vinícius Ferrão f8b9fd8489 feat(copycds): publish the grub2 boot loader of the installation media
riscv64 nodes boot through UEFI and grub2 only, and xCAT builds no boot
loader: /tftpboot/boot/grub2/grub2.riscv64 has to come from the xcat-dep
grub2-xcat package or be copied by hand, which is a step an admin only
finds out about when a node times out in firmware.

The EL riscv64 media carry exactly that image as EFI/BOOT/grubriscv64.efi,
so copycd publishes it after a successful media copy, and says so. An
image the management node already has is never replaced, and the media of
every other architecture is untouched.
2026-09-01 10:50:22 -03:00
Vinícius Ferrão 60afa553ab feat(xCAT-server): reserve a crash kernel for riscv64 diskless images
The kdump branch of the diskless kernel command line has a default
reservation for ppc64 and x86 only. On any other architecture an image
with linuximage.dump set but no linuximage.crashkernelsize got dump= and
no crashkernel= at all, so the kernel reserved nothing and kdump could
never run. EL has no default reservation for riscv64 either
(kdumpctl get-default-crashkernel is empty there), so nothing else fills
the gap.

Give riscv64 the same treatment as the architectures around it and
default to 256M. An explicit crashkernelsize still wins, and images
without dump are unchanged.
2026-09-01 10:50:21 -03:00
Vinícius Ferrão 2ef44d5d7f feat(xCAT-server): install and netboot EL10 riscv64 nodes
EL riscv64 media lay out the installer kernel and initrd under
images/pxeboot exactly like x86 and aarch64 media, but anaconda.pm only
looked there for those two families and geninitrd.pm refused riscv64
outright ("unknow arch"). Treat riscv64 like x86/aarch64 in both
places and recognise riscv64 kernels when a driver disk updates the
installer kernel. There is no riscv64 SUSE media, so geninitrd keeps the
unsupported-architecture error for sles/suse rather than reading the x86
SUSE layout.

Diskless images get a riscv64 default network driver list (virtio,
Intel, Realtek, Broadcom and Mellanox) and take the resolver libraries
from lib64, which is where riscv64 EL puts them.
2026-09-01 10:50:19 -03:00
Vinícius Ferrão 8fd34c04ff fix(anaconda): load the driver disk that is added to the initrd
xCAT appends dracut driver disks to the installer initrd as /dd.img. EL6 auto-loads that embedded image, while Anaconda 7 and newer require inst.dd=/dd.img on the kernel command line.

Record successful injection beside the generated initrd so nodeset --noupdateinitrd reuses the same decision as a normal nodeset. Clear the marker when rebuilding, validate the temporary archive paths, and do not create it when the disk cannot be copied, archived, or appended.
2026-08-29 18:28:00 -03:00
Vinícius Ferrão ae06a1edcb fix(anaconda): read the CentOS Linux minor version from the release package
Every CentOS Linux 8 medium gives the same description, "CentOS Linux 8".
The description gives no minor version. The .treeinfo file on the medium
gives no minor version. Thus copycds gave the name centos8 to all of these
media. Two CentOS Linux 8 media then wrote into the same /install/centos8
directory and made osimage definitions with the same names.

The discinfo identifier table gives the minor version, but it contains
only 8.1 and 8.5. The identifiers of an expanded tree are also different
from the identifiers of the DVD. The release package in BaseOS/Packages is
the only other record of the minor version on the medium.

Read the version from the name of that package. CentOS changed the name of
the package to centos-linux-release in 8.3, thus accept the two names.
Accept only a major.minor version, because other packages start with the
same centos-release prefix. Accept only the major version that the
description gives, because a package for a different major version does not
describe this medium. Accept the minor version only when the medium names
one, because a medium that names more than one does not pin a minor version.

Keep the version from the description in the other conditions. A medium that
names no minor version keeps the name centos8, which is the behaviour before
this change and the correct name for media that do not pin a minor version.

CentOS Stream, Rocky Linux, AlmaLinux and Red Hat Enterprise Linux keep
their own branches. CentOS Linux 7 gives a different description and has
no BaseOS directory, thus it does not use this path.

Recovered from the lenovobuild branch. Reimplemented against master: the
original reads only centos-release, which CentOS renamed in 8.3, and its
expression is not anchored.
2026-08-26 12:15:59 -03:00
Vinícius Ferrão 719e5aecab fix(genesis): close consumer review gaps 2026-08-25 11:26:46 -03:00
Vinícius Ferrão 24e2c98957 style(statelite): align image cache assignments 2026-07-14 19:11:28 -03:00
Vinícius Ferrão aa086a1bc9 feat(statelite): support NFS root mount options 2026-07-14 19:04:09 -03:00
Markus Hilger aa180925e3 Merge pull request #7550 from VersatusHPC/fix/profile-asset-dotted-osvers
fix: handle dotted OS versions in profile asset lookup
2026-05-06 19:18:26 +02:00
Vinícius Ferrão 119b19ce14 fix: handle dotted OS versions in profile asset lookup 2026-05-05 13:50:58 -03:00
Vinícius Ferrão 03a16dd081 fix: move kernel quiet flag from hardcoded to osimage default
The quiet kernel parameter was hardcoded in anaconda.pm and sles.pm,
making it impossible for admins to get verbose boot output without
editing plugin source code. The existing addkcmdline mechanism
(bootparams and linuximage tables) only appends to the kernel command
line, so there was no way to remove quiet.

Move quiet out of the plugin kcmdline construction and into the
linuximage.addkcmdline default set during copycds osimage creation.
Admins who want verbose boot for debugging can now remove it per
osimage:

    chdef -t osimage <image> addkcmdline=""

New osimages get addkcmdline="quiet" by default. Existing osimages
with a custom addkcmdline are not overwritten on re-run of copycds.

Genesis/discovery boot (mknb.pm) is unchanged as it does not use
osimage definitions.

Addresses #6916
2026-05-04 22:58:52 -03:00
Vinícius Ferrão 88da644249 Merge pull request #7532 from VersatusHPC/fix/el10-netboot-dhcp-client
fix: use NetworkManager for EL10 netboot DHCP instead of dhclient
2026-05-04 17:20:11 +02:00
Markus Hilger d7748b6e3a Merge pull request #7525 from VersatusHPC/kea-uefi-reservation-policy
Fix Kea UEFI reservation boot policy
2026-04-29 11:30:11 +02:00
Vinícius Ferrão ee26cf3f8f fix: strip redundant alternate suffix from RHEL distnames in copycds
RHEL 7 shipped ppc64le ISOs under the "alternate" label, causing
copycds to create distro paths like rhels7.6-alternate/ppc64le.
This mismatched osver() which returns rhels7.6 since /etc/os-release
has no knowledge of the alternate designation.

The architecture (ppc64le vs ppc64) already differentiates the
builds, making the alternate suffix redundant. Strip it during
auto-detection so copycds paths match osver() output.

Fixes #5593
2026-04-28 17:06:32 -03:00
Vinícius Ferrão 0f606615b3 Fix Kea UEFI reservation boot policy 2026-04-28 03:35:53 -03:00
Daniel Hilst Selli 1b0deaf9af fix: Fix dhcp-client dependency failure during genimage
Signed-off-by: Daniel Hilst Selli <392820+dhilst@users.noreply.github.com>
2026-04-01 13:02:35 -03:00
Markus Hilger 6403987400 new kernel for aarch64 2024-02-21 11:59:50 +01:00
Jarrod Johnson 1b44680217 Preliminary aarch64 support
Add hooks to do a draft implementation of aarch64 using grub
2024-02-21 11:59:50 +01:00
Mark Gurevich 9fbd58bfc3 Initial Alma8 support 2023-01-18 11:00:59 -05:00
Wai Yee Wong 5476959365 Add ol to the list of OSes in the subroutine using_dracut of anaconda.pm 2021-11-04 11:09:07 -04:00
Mark Gurevich 3c643e6598 Genesis base based on Fedora 28 2021-10-14 16:57:14 -04:00
Mark Gurevich 472fa1456a Support Fedora34 diskful install 2021-09-30 11:35:10 -04:00
besawn e1dc9e33c6 Merge pull request #7029 from gurevichmark/centos-stream
Support CentOS8 Stream
2021-09-17 16:43:01 -04:00
Mark Gurevich 1147726242 Support CentOS8 Stream 2021-08-31 15:54:43 -04:00
Mark Gurevich 0f2f6db5cf Update kernel options to disable selinux on OL and Rocky 2021-08-18 14:01:16 -04:00
TheWitness b38e9716d3 Update the kernel options to disable selinux
Was having issues building a diskless image for RHEL8
2021-07-30 18:51:50 -04:00
fangjzh b9585a78e1 add Rocky Linux 8.4 support 2021-07-13 07:52:55 +08:00
Mark Gurevich 0dbc10bd0d Better comment for [-1] index 2021-04-21 15:33:43 -04:00
Mark Gurevich f045f67994 Support Oracle Linux on service nodes 2021-04-21 08:46:17 -04:00
cxhong f57fd01c3d Generate local repository template if not exist or empty 2020-07-30 13:54:15 -04:00
cxhong 2e8ab98304 geninitrd failed to load new driver rpm packages 2020-07-10 14:17:59 -04:00
Jarrod Johnson 28a917b25c Port Generic CentOS check from Lenovo tree
This will do a more generic check if a discid is not found.
2019-11-08 08:25:32 -05:00
Victor Hu 9854215617 Inform the user when arch cannot automatically be detected, if we are in the correct plugin 2019-05-10 10:36:31 -04:00
Victor Hu 4ae1391051 Missing newline 2019-05-09 17:25:21 -04:00
Victor Hu 0ee133ce9b Improve the debug messages to show plugin 2019-05-09 17:23:50 -04:00
Victor Hu d80bda8eb4 Plugin should not return error in certain places because it will attempt to look at another plugin 2019-05-09 17:20:10 -04:00
Victor Hu 5188f3a526 Add non zero return code to the error callback 2019-05-07 10:36:19 -04:00
Victor Hu 1cbe1ee8f4 Add some debug into copycds to help when issues come up, allow for user to specify options to copycds 2019-05-02 15:51:15 -04:00
GONG Jie 3089a256e5 Handle the exit code properly 2019-03-12 18:10:41 +08:00
GONG Jie 0278e8962c Handle the output of cpio properly 2019-03-12 18:10:31 +08:00
GONG Jie dd394f6f6e Handle the exit code of child process properly 2019-03-12 18:10:23 +08:00
yangsong 01541aba74 correct several issues on site.httpport in diskless provision (#5774) 2018-11-07 18:19:35 +08:00
yangsbj 5d90a4212c change HTTPPORT in /proc/cmdline to XCATHTTPPORT to avoid potential confilic 2018-11-04 21:54:30 -05:00
yangsbj 1fb78eb97d add HTTPPORT=xxx in kcmdline for diskless/statelite 2018-11-02 05:00:26 -04:00
Yuan Bai d94406edae Merge branch 'master' into sle15support 2018-08-20 17:10:12 +08:00
Jarrod Johnson a39707fa94 Restore classic nodeset arguments
People are opting into the classic arguments, continue helping them so
long as it works.
2018-08-06 14:01:44 -04:00
yangsong c49e41da99 support environment variables in osimage customized files (#5281)
* * osimage table schema change: add a "environvar" col in osimage table to hold environment variables used in osimage customized files
* osimage object schema change: add a environvar attribute, which refers to  osimage.environvar
* the environment variables specified in "environvar" attribute will be exported during invocation of postinstall scripts in genimage

* support variables in synclists

* support environment variables in genimage,mkinstall,getpostscript

* support environment variables for xdcp -i -F in packimage
2018-06-15 14:51:41 +08:00