2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-10-20 14:45:41 +00:00

fix(genesis): finish consumer integration

This commit is contained in:
Vinícius Ferrão
2026-08-24 21:46:59 -03:00
parent d43bda0005
commit ba2c1e75bc
4 changed files with 22 additions and 13 deletions
@@ -143,12 +143,23 @@ Unless you are downloading ``xcat-dep`` to match a specific version of xCAT, it'
cd <os>/<arch>
./mklocalrepo.sh
#. Configure the common repository from the same mirror. This repository is
independent of the management-node operating system and architecture: ::
#. Configure the common repository if ``common`` is present in the archive.
This repository is independent of the management node operating system and
architecture: ::
cd ~/xcat/xcat-dep/common
./mklocalrepo.sh
If ``common`` is not in the archive, mirror it before disconnecting the
installation network: ::
mkdir -p ~/xcat/xcat-dep/common
dnf reposync --repoid=xcat-dep-common --download-metadata \
--download-path ~/xcat/xcat-dep/common --norepopath
Run ``mklocalrepo.sh`` from the mirrored directory after copying the mirror
to the management node.
.. END_configure_xcat_local_repo_xcat-dep_RPM
.. BEGIN_configure_xcat_local_repo_xcat-dep_DEBIAN
+5 -3
View File
@@ -14,13 +14,15 @@ It creates a network boot root image (used for node discovery, BMC programming,
for the same architecture that the management node is. So you normally do not need to run the
B<mknb> command yourself.
If you make custom changes to the network boot root image, you will need to run B<mknb> again to regenerate the diskless image to include your changes. If you have an xCAT Hierarchical Cluster with Service Nodes having local /tftpboot directories (site.sharedtftp=0), you will need to copy the generated root image to each Service Node.
If you make custom changes to the network boot root image, run B<mknb> again to regenerate it. In an xCAT hierarchical cluster where service nodes have local C</tftpboot> directories (C<site.sharedtftp=0>), copy the generated image to each service node.
An exported Genesis image is identified by C<xcat-genesis.manifest>, which records its format version and architecture. The directory also contains C<kernel>, C<initramfs.cpio.gz>, and C<SHA256SUMS> in C</opt/xcat/share/xcat/netboot/genesis/ARCH>. B<mknb> verifies the manifest and both boot files before publishing them under the configured TFTP root. An incomplete or invalid export leaves the current boot files unchanged. The legacy C<fs/> layout remains supported and is packed locally.
An OpenEmbedded Genesis package installs an exported image under C</opt/xcat/share/xcat/netboot/genesis-openembedded/ARCH>. B<mknb> prefers that image when it is installed. Otherwise it uses the old image under C</opt/xcat/share/xcat/netboot/genesis/ARCH>.
An export is identified by C<xcat-genesis.manifest>, which records its format version and architecture. The directory also contains C<kernel>, C<initramfs.cpio.gz>, and C<SHA256SUMS>. B<mknb> verifies the manifest and both boot files before publishing them under the configured TFTP root. An incomplete or invalid export leaves the current boot files unchanged. The legacy C<fs/> layout remains supported and is packed locally.
When multiple IPv4 addresses are configured for the same network, B<mknb> uses a locally assigned C<site.master> for the xcatd endpoint, or the first address reported by the operating system when C<site.master> is not local. POWER discovery configurations also use this address for their kernel and initrd URLs.
Presently, the architectures x86_64 and ppc64 are supported. For ppc64le, use the ppc64 architecture.
OpenEmbedded images use the exact architecture names C<x86>, C<x86_64>, C<ppc64>, C<ppc64le>, C<armv7hf>, C<aarch64>, and C<riscv64>. If an OpenEmbedded C<ppc64le> image is not installed, B<mknb> keeps the old behavior and uses the legacy C<ppc64> image.
=head1 OPTIONS
+3 -1
View File
@@ -379,7 +379,9 @@ sub process_request {
}
if ($requested_arch eq 'ppc64el') {
$callback->({ data => 'Using the canonical architecture name ppc64le' });
} elsif ($requested_arch eq 'ppc64le' && $arch eq 'ppc64') {
}
if (($requested_arch eq 'ppc64le' || $requested_arch eq 'ppc64el')
&& $arch eq 'ppc64') {
$callback->({ data => 'OpenEmbedded ppc64le is not installed, using the legacy ppc64 image' });
}
$request->{arg}->[0] = $arch;
+1 -7
View File
@@ -487,7 +487,7 @@ function debug_trace()
return "${rc}"
}
[[ ${GO_XCAT_LIBRARY_ONLY:-0} == 1 ]] || internal_setup
internal_setup
# Check operating system
function check_os()
@@ -2320,12 +2320,6 @@ function boo_boo_if_bad()
#
# Main program goes here.
if [[ ${GO_XCAT_LIBRARY_ONLY:-0} == 1 ]]
then
# shellcheck disable=SC2317
return 0 2>/dev/null || exit 0
fi
declare -a GO_XCAT_YES=()
GO_XCAT_ACTION=""
GO_XCAT_CORE_URL=""