2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-09-02 15:36:03 +00:00

548 Commits

Author SHA1 Message Date
Vinícius Ferrão 6eba1277fe docs(riscv64): document EL10 riscv64 compute node support
Add the riscv64 page to the cluster management guide (UEFI + grub2 boot
path, discovery through mknb's grub2 network configurations, stateful and
stateless provisioning, the dependency picture for a management node on
riscv64, limitations), list riscv64 in the node object attributes and in
the support matrices, add the architecture to the cross-build page for
stateless images, extend the grub2 install guide (and fix its swapped
x86_64/aarch64 file names), the uninstall package lists, the DHCP backend
validation matrix and the mknb/genimage man pages, and carry the riscv64
schema values into the generated nodetype, osimage, noderes, node and
group references.
2026-09-01 10:50:20 -03:00
Vinícius Ferrão 2487faa678 fix(rpm): preserve local xcat.conf changes across upgrades
xcat.conf was installed as an ordinary payload file and then deleted and
recreated from the Apache-version template in %post. rpm therefore held
no record of what was on disk, and an upgrade replaced an edited file
silently, leaving neither .rpmnew nor .rpmsave. A site that had added
Indexes to the /install block lost it on upgrade and directory listings
began returning 403.

Select the Apache 2.2 or 2.4 configuration at build time, using the same
distribution macros the rest of the spec already relies on, and mark
both /etc/httpd/conf.d/xcat.conf and /etc/apache2/conf.d/xcat.conf as
%config(noreplace). rpm then keeps a modified file and installs the new
vendor version alongside it as xcat.conf.rpmnew.

The old payload recorded the 2.2 file while %post wrote the 2.4 one, so
rpm cannot distinguish a stock file from an edited one across the
transition. A migration compares the active file with the templates the
outgoing package saved under conf.orig and removes it only when it is a
regular file still byte-for-byte identical to one of them. A stock
upgrade then completes without an unnecessary .rpmnew, and anything that
differs is left untouched.

That migration runs in %pretrans, not %pre. rpm fixes each config file's
fate before %pre, so removing the active file there can happen after rpm
has already resolved to write only xcat.conf.rpmnew, leaving the system
with no active configuration at all. %pretrans runs before that decision.
It is an embedded Lua scriptlet because a pre-transaction scriptlet
cannot rely on any dependency being unpacked yet, which also means the
comparison needs no external tool.

bc was needed only by the version check the service-node package no
longer performs.

The Apache directives are unchanged. Document a later-loading conf.d
file as the place for site rules, since that survives upgrades without a
merge.
2026-08-27 01:46:17 -03:00
Kilian Cavalotti 30dc723b6d Fix genpdu sensor value column and connection detection
genpdu read negative-capable sensors from the unsigned value column,
which the MIB leaves undefined for them: a PX4 answers it with 0 for
inlet reactive power and carries the reading in the signed column. Use
SensorSignedMinimum to pick the column, as the MIB specifies. The
unsigned column is still needed for active energy, whose range exceeds
Integer32 and reads 0 in the signed one.

An unreachable PDU or a wrong credential looked like a PDU without
switched outlets, since the switching probe was the first exchange with
the device. Probe pduCount first (implemented by every PDU2 agent,
verified on PX2, PX3 and PX4) and return no session when it fails, so
callers print "Couldn't connect to <pdu>". Warn when pduCount is not 1
rather than refusing: a linked primary still answers for its own
outlets.

Add unit tests for the genpdu sensor, session and inventory paths.

Signed-off-by: Kilian Cavalotti <kilian@stanford.edu>
2026-08-24 16:32:41 -07:00
Kilian Cavalotti 657b17570a Add genpdu pdutype for generic SNMP PDUs (PDU2-MIB)
Add a new pdutype (genpdu) for PDUs implementing the Raritan PDU2-MIB.
A single MIB covers the Raritan PX2/PX3/PX4/PXC/SRC/PXO/BCM series, the
Server Technology PRO3X/PRO4X series, the Legrand intelligent PDUs, and
all PDUs following the PDU2-MIB.

Supports rpower (whole-PDU and per-outlet), rinv and rvitals over SNMP
v1, v2c or v3, with credentials read from the pdu table).

Unlike the existing types, sensor units and decimal precision are read
from the MIB per sensor rather than hardcoded, so readings are correct
across models that report differing precision for the same sensor.
Outlet switching capability is probed at connect time, so metered-only
models report a single "unsupported" message instead of a per-outlet error.

rspconfig is not supported for genpdu; PDU linking and BCM2/PMC power
meters are out of scope.

Tested on Raritan PX4-5851-E7V2 (fw 4.2.10.5-50400, switched),
PX3-1901U-N1 and PX3-1901U-N1A6 (fw 4.0.20.5-49038, metered), and
PX2-1901U-N1A6 (fw 4.0.20.5-49038, metered).

Signed-off-by: Kilian Cavalotti <kilian@stanford.edu>
2026-08-20 18:51:02 -07:00
Vinícius Ferrão 48e8a3b57d docs(hierarchy): document delegated signer addresses 2026-08-20 17:37:23 -03:00
Daniel Hilst 18ef026fc5 Merge pull request #7638 from VersatusHPC/harvest/apache-security-hardening
fix(httpd): harden the xCAT Apache configuration
2026-07-28 11:05:42 -03:00
Vinícius Ferrão ddf4d35194 docs(httpd): align hardening guidance with defaults 2026-07-27 17:19:27 -03:00
Vinícius Ferrão c4ea5e284f docs(xnba): update missing pxelinux warning 2026-07-27 16:32:40 -03:00
Vinícius Ferrão cd799cd0e6 Merge pull request #7597 from VersatusHPC/feat/omapi-sha256-default
feat: use HMAC-SHA256 by default on new EL and Ubuntu sites
2026-07-17 18:23:33 -03:00
Vinícius Ferrão c362904e0d docs(dhcp): clarify legacy OMAPI FIPS limits
Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
2026-07-17 16:09:05 -03:00
Vinícius Ferrão 49a86ff2f3 test(dhcp): preserve SUSE OMAPI compatibility
Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
2026-07-16 17:22:39 -03:00
Vinícius Ferrão 6e4cffddc3 feat(dhcp): default new Ubuntu sites to HMAC-SHA256
Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
2026-07-16 17:19:19 -03:00
Vinícius Ferrão 424b2e3e9b feat(dhcp): default new EL sites to HMAC-SHA256
Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
2026-07-16 17:18:13 -03:00
Vinícius Ferrão 3d842ce944 docs: fix CUDA samples verification 2026-07-14 00:19:09 -03:00
Daniel Hilst 638f0d75c4 Fix xCAT 2.18 EL10 x86_64 package build issues
Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-06-20 18:48:14 -03:00
Vinícius Ferrão ab86139959 Support configurable ISC OMAPI TSIG policy
Add a shared OMAPI policy helper for ISC DHCP and DDNS so administrators can select the key name, signing algorithm, and omshell path from the site table while preserving the existing xcat_key hmac-md5 default.

Keep local ISC updates from hanging indefinitely when omshell does not exit, and use a static host-declaration fallback for local Ubuntu ISC releases where omshell is unstable for xCAT host updates.

Co-authored-by: gskouson <1507929+gskouson@users.noreply.github.com>
2026-05-07 03:57:10 -03:00
Vinícius Ferrão 2915e9be0e Add xCAT TLS policy selection 2026-05-05 23:20:18 -03:00
Vinícius Ferrão 60820b1abe docs: update NVIDIA CUDA documentation for modern OS support
The CUDA docs were frozen at CUDA 9.2 / RHEL 7.5 / Ubuntu 14.04 since
2019. Update to cover all currently supported OS and architecture
combinations (EL 7-10, Ubuntu 20.04-24.04, x86_64/ppc64le/sbsa).

Consolidate the version-specific repo and osimage pages into generic
guides that use placeholder variables, reducing 7 files to 2 while
covering more OS versions. Both online (direct NVIDIA repo URL) and
offline (dnf download / apt download mirroring) workflows are
documented.

All NVIDIA repository URLs validated against
developer.download.nvidia.com/compute/cuda/repos/ and confirmed
accessible with valid repodata.

Addresses #7373
2026-05-05 02:32:09 -03:00
Markus Hilger 679bed8926 Merge pull request #7542 from VersatusHPC/fix/apache-disable-directory-indexing
fix: disable Apache directory indexing on /install and /tftpboot
2026-05-04 17:18:39 +02:00
Vinícius Ferrão 5035697e9b fix: disable Apache directory indexing on /install and /tftpboot
The default xCAT Apache configuration shipped with Options Indexes
enabled for the /install and /tftpboot directories. This allowed
unauthenticated users to browse directory listings, disclosing the
full tree of postscripts, boot files, and (in production deployments)
potentially kickstart files with password hashes, custom scripts with
embedded credentials, and cluster topology details.

Replace Options Indexes with -Indexes in all four shipped Apache config
files (MN and SN, Apache 2.2 and 2.4 variants). Direct file access
by known path continues to work, so all provisioning workflows are
unaffected. Directory browsing for /xcat-doc is preserved as it
contains only public documentation.

Additionally, add an Apache hardening guide documenting recommended
permissions for sensitive directories under /install, network binding
best practices, and IP-based access control options.

Addresses #7450
2026-05-03 23:01:01 -03:00
Vinícius Ferrão 4165b26a04 fix: remove Docker container lifecycle management (dead code since 2016)
Docker container lifecycle management (mgt=docker, mkdocker, rmdocker,
lsdocker) was added in 2015-2016 as an experiment targeting Docker API
v1.22 on Ubuntu only. Documentation and man pages were deliberately
removed in 2019 (PRs #6222 and #6324) with the original developer's
approval, noting that "the interface of Docker has become very simple
right now, so there is no value for xCAT to offer such functions."

The plugin was still being shipped but has had no functional code changes
since April 2016, was never listed as a valid mgt value in Schema.pm,
and no user ever filed an issue about it.

Removed:
- xCAT-server/lib/xcat/plugins/docker.pm (1,142 lines)
- xCAT/postscripts/setupdockerhost
- xCAT-server/share/xcat/scripts/setup-dockerhost-cert.sh
- xCAT-test/autotest/testcase/dockercommand/ (test cases)
- Docker attribute definitions in Schema.pm
- Client symlinks (mkdocker, rmdocker, lsdocker)
- Usage entries and dockerhost cert handling in credentials.pm
- Docker attribute documentation in man7 pages

The "Running xCAT in Docker" documentation (dockerized_xcat/) is
retained as it documents containerizing xCAT itself, not the removed
mgt=docker feature.

Closes #7518
2026-05-03 12:11:33 -03:00
Vinícius Ferrão 6f3d9bb9d1 Add Kea DHCP backend 2026-04-23 02:01:33 -03:00
Markus Hilger c8cb1d6a38 Merge pull request #7257 from Obihoernchen/aarch64
Initial aarch64 support, cross arch stateless images with qemu-user-static, grub2 for x86
2024-07-25 16:12:11 +02:00
Markus Hilger 8329cf6631 Update documentation for aarch64 and grub2 support 2024-07-12 19:37:15 +02:00
Markus Hilger 2643c1edd6 Remove useless executable bit 2024-05-07 16:19:25 +02:00
Obihörnchen 7b4e9cef5a Merge pull request #6876 from krono/patch-1
[doc only] Add vlan to networks documentation
2024-02-19 19:10:34 +01:00
besawn 56ec84d294 Fixed typo in readthedocs SSL config page 2023-03-02 15:05:07 -05:00
Mark Gurevich 570cda30b4 mysqlsetup enhancements 2023-02-14 13:17:17 -05:00
Mark Gurevich 55867269ec Doc update for Service Node upgrading 2022-05-26 11:31:30 -04:00
besawn 56547d1fde Spelling fixes in advanced/xcat-inventory docs 2022-02-10 10:10:33 -05:00
besawn 074c9bb200 Spelling fixes in advanced/security docs 2022-02-10 10:03:42 -05:00
besawn 347fe27529 Spelling fixes in advanced/restapi docs 2022-02-10 09:52:59 -05:00
besawn 027c40ba56 Spelling fixes in advanced/probe docs 2022-02-10 08:36:06 -05:00
besawn 87444f8857 Spelling fixes in advanced/performance_tuning docs 2022-02-10 08:34:02 -05:00
besawn 77cf333172 Spelling fixes in advanced/pdu docs 2022-02-10 08:28:31 -05:00
besawn 60af1ce6c0 Spelling fixes in advanced/networks docs 2022-02-10 08:19:58 -05:00
besawn dab905c853 Spelling fixes in advanced/migration docs 2022-02-09 14:13:20 -05:00
besawn 362b4bd7a7 Spelling fixes in advanced/kit docs 2022-02-09 12:43:36 -05:00
besawn 8d4795374f Spelling fixes in advanced/hamn docs 2022-02-09 12:30:39 -05:00
besawn 2818a11b91 Spelling fixes in advanced/docker docs 2022-02-09 12:04:54 -05:00
besawn 6df7914e26 Spelling fixes in advanced/chain docs 2022-02-09 11:41:28 -05:00
Mark Gurevich afc83ccc82 Documentation updates for sysclone and partitionfile 2021-08-12 11:09:21 -04:00
Mark Gurevich e763c63217 Doc updates for MariaDB and mypostscript.tmpl 2021-06-29 15:54:24 -04:00
Mark Gurevich af4507bc31 Make xcatprobe xcatmn recognize default SQLite DB 2021-04-13 16:01:02 -04:00
Mark Gurevich 9918b96ffe Add postscript execution summary 2021-02-10 11:49:08 -05:00
Tobias Pape 657a1b6122 Add vlan to networks documentation
Apparently the doc was contributed some time ago and is live (https://xcat-docs.readthedocs.io/en/stable/advanced/networks/vlan/index.html) but not referenced in the toc for networking (https://xcat-docs.readthedocs.io/en/stable/advanced/networks/index.html)
2020-11-12 16:10:07 +01:00
Mark Gurevich 6f4c59fece Verify nbk kernel file is present before defaulting to use it 2020-09-10 14:39:41 -04:00
besawn 71ea2864be Merge pull request #6762 from gurevichmark/db_doc
Update pgsqlsetup command and related docs
2020-08-18 14:23:18 -04:00
cxhong 478164108a uncomment the getadapter.rst in the conf.py 2020-07-31 16:28:48 -04:00
cxhong cdd22810b5 Add getadapter to xCAT Doc 2020-07-31 12:27:42 -04:00