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

16 Commits

Author SHA1 Message Date
Daniel Hilst 279207cf0a fix(xcat-core): the legacy Genesis image for el10 carries no DHCP client
A compute node that boots the legacy Genesis image on el10 x86_64 never acquires an
address. Its serial console reports "/usr/bin/doxcat: line 293: dhclient: command not
found" and then "It seems to be taking a while to acquire an IPv4 address". The DHCP
server side is sound: Kea leases the address and the node never asks for it.

AlmaLinux 10 and EPEL 10 package no ISC dhcp-client. dracut_install reports a missing
binary and returns, so module-setup.sh named dhclient, the build kept going and the image
shipped without a client. doxcat then named dhclient at six call sites with no
alternative.

doxcat now chooses its client at run time. genesis_dhcp_command() returns the command
line for one interface and one address family, and genesis_start_dhcp() runs it and
reports when the image carries none. The ISC client keeps its command line where a
release packages it, so el8 and el9 are unchanged. Where it is absent, dhcpcd stands in:
AlmaLinux 10 baseos packages it at 236 KB, and it carries its own resolv.conf, hostname
and ntp hooks, so it needs no dhclient-script. dhcpcd on a single interface exits when
its 30 second timeout expires and de-configures the interface as it goes, so it is asked
for -t 0 and -p.

The dracut module installs whichever client the build root carries, together with the
hooks dhcpcd runs on every lease. The spec build-requires dhcpcd from rhel 10 on, and
verify-genesis-payload now requires usr/sbin/dhcpcd there, so an image that ships with no
client fails the build instead of reaching a node.

genesis_dhcp_client.t drives both routines with the clients shadowed by recording stubs.
It fails on the parent commit, and deleting the dhcpcd branch turns five of its
assertions red.

Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
(cherry picked from commit b9329998c80383bb0397d16a558f66a6bb9db399)
2026-09-04 19:26:23 -03:00
Vinícius Ferrão cbfc72b6a0 fix(genesis): configure eligible secondary NICs with DHCP
Legacy Genesis excludes every secondary interface with IFF_UP, even when firmware only raised it and no address is configured. Let eligible interfaces join the existing secondary-interface DHCP path when they are physical, not enslaved, unaddressed, and not owned by the TSM or IMM management paths. Existing DOWN interfaces keep their prior path.

Recovered from the unmerged lenovobuild branch (original 9a1381f6), adapted to leave preconfigured and management-owned interfaces untouched.

Co-authored-by: Jarrod Johnson <10814490+jjohnson42@users.noreply.github.com>
2026-08-30 20:01:59 -03:00
Daniel Hilst b4a5a86b4b Merge pull request #7665 from VersatusHPC/harvest/genesis-ib-support
fix(genesis): find the boot NIC over InfiniBand (IPoIB)
2026-07-28 11:01:51 -03:00
Vinícius Ferrão 9a33f64257 fix(genesis): find the boot NIC over InfiniBand (IPoIB)
When a node boots from an InfiniBand interface, doxcat could not match BOOTIF
to the netdev, so boot-nic detection failed. Load ib_ipoib and, if the normal
Ethernet lookup finds nothing, fall back to matching the InfiniBand device by
its (shorter) IPoIB address.

modprobe ib_ipoib is harmless where there is no IB hardware (the module simply
loads no devices), and the IB lookup only runs when the Ethernet lookup fails,
so non-IB nodes are unaffected.

Not lab-validated (no InfiniBand fabric available; the SR635's Mellanox card is
in Ethernet mode).

Recovered from the unmerged lenovobuild branch (aeeebd5f).

Co-authored-by: Jarrod Johnson <10814490+jjohnson42@users.noreply.github.com>
2026-07-23 19:19:23 -03:00
Vinícius Ferrão f24457cddf fix(genesis): stop ethtool link-wait loops from spinning forever
For each secondary NIC in NICSTOBRINGUP, doxcat backgrounds a loop that polls
`ethtool $nic` until the link reports "detected: yes" before running dhclient.
A NIC that is never connected keeps that loop (and its `sleep 5`) running for
the life of the genesis environment, leaking background shells and needlessly
churning.

Add a second exit condition so each loop also stops once /tmp/netinitted
exists, and touch that file once the boot NIC has completed network init. A
link that never appears no longer waits indefinitely.

Recovered from the unmerged lenovobuild branch (original 9ece12e4).

Co-authored-by: Jarrod Johnson <10814490+jjohnson42@users.noreply.github.com>
2026-07-21 17:11:01 -03:00
Abhishek S A f89fb8763d Update doxcat 2024-07-31 08:56:28 +05:30
abhishek-sa1 88447104e5 Update doxcat 2024-07-31 08:54:55 +05:30
abhishek-sa1 5e7e00ffac xcat genesis fix for x86_64 2024-07-26 16:05:15 +05:30
Markus Hilger df64bf8feb Add missing shebang lines 2024-05-07 16:31:30 +02:00
Mark Gurevich e58074ad4a Update doxcat discovery script to run on Fedora34 generated image 2021-09-30 17:42:07 -04:00
Mark Gurevich a80c172f83 RH8 genesis scripts 2021-09-22 15:36:45 -04:00
GONG Jie 8cf5ac93a7 Remove trailing spaces in file xCAT-genesis-scripts/usr/bin/doxcat 2017-12-31 23:59:59 +00:00
XuWei 9d5dede0d1 update node status when enter shell/standby 2018-04-25 04:46:12 -04:00
cxhong 8f61ee5ace Add ondiscover support for chain table (#4903)
* Add ondiscover support for chain table

* For ondiscover, run nextdestiny after the current operation is done

* Don't set OpenPower server boot from network if boot
2018-03-29 17:50:04 +08:00
Casandra Qiu 721d77b6bc Remove "dynamic" checking in the doxcat scripts 2018-02-27 16:42:14 -05:00
Samveen Gulati 63a3efe8bb move /*bin to /usr/ to fix path conflict of genesis base and scripts
RH7/Centos7 and recent versions of fedora relocate `/*bin/*` into `/usr/*bin/`. This causes
conflicts for upgrades against xCAT-genesis-scripts-* packages which expect the `/bin` a to be
a directory while `xCAT-genesis-base-*` packages provide a link. Relocating all files into `/usr`
fixes that conflict and allows a clean upgrade from all old versions.
2018-01-12 06:06:25 +00:00