2
0
mirror of https://github.com/xcat2/confluent.git synced 2026-11-12 11:06:17 +00:00
Commit Graph

7078 Commits

Author SHA1 Message Date
Markus Hilger 061f2facec Keep urlmount alive during system shutdown
Mark urlmount as an initramfs root storage daemon before entering FUSE so systemd-shutdown does not wait for or kill the process serving the root image.
2026-11-02 02:37:23 +01:00
Jarrod Johnson 89787671cf Merge pull request #338 from Obihoernchen/fix/ssh-agent-dir-owner
Hand /run/confluent/ssh to the confluent user
2026-10-31 09:21:18 -04:00
Jarrod Johnson f42a8ff667 Merge pull request #337 from Obihoernchen/fix/require-ipxe-2
Require confluent_ipxe 2.0.0
2026-10-31 09:20:34 -04:00
Jarrod Johnson 516930107f Merge pull request #336 from Obihoernchen/fix/nightly-publish
Various CI/CD improvements
2026-10-31 09:20:16 -04:00
Jarrod Johnson fa11d643ab Merge pull request #335 from Obihoernchen/fix/diskless-confluent-arg-ubuntu-suse
Support confluent= in Ubuntu diskless initramfs + sles16 diskless selinux
2026-10-31 09:19:12 -04:00
Jarrod Johnson 12a97a6eff Merge pull request #334 from Obihoernchen/fix/diskless-confluent-arg
Support confluent= in el9 and el10 diskless initramfs
2026-10-31 09:16:46 -04:00
Jarrod Johnson 97489aff8c Merge pull request #333 from Obihoernchen/fix/pre-without-ifidx
Skip bringing up the deploy nic without a discovered ifidx
2026-10-31 09:10:05 -04:00
Markus Hilger 8ff02dc772 Require confluent_ipxe 2.0.0
Fixes #317
2026-10-31 02:35:30 +01:00
Markus Hilger 905992f054 Hand /run/confluent/ssh to the confluent user
Fixes #316
2026-10-31 02:14:21 +01:00
Markus Hilger 83c2a05dbd Harden nightly publishing and bound CI job runtimes
Write the nightly release notes only after every bundle is uploaded.
The notes carry the build key that prepare compares against, so a
failed upload used to record the new build anyway, and the following
nights skipped it while the release kept stale or missing bundles.

Publish only from the default branch. A manual run defaulted to
publishing, so testing the workflow on a topic branch replaced the
nightly with that branch.

Run the packaging build on pull requests that touch MANIFEST.in, which
decides what goes into the client and server packages, or anything
under confluent_vtbufferd, which is compiled here and carries the only
debian/ packaging in the tree.

Give every job a timeout instead of the six hour default, so a hung
container or download fails within minutes.
2026-10-31 01:57:38 +01:00
Markus Hilger 551658b5fe Label overlay upper layer of suse16 diskless images for SELinux
The initramfs writes the overlay upper layer before the SELinux policy
is loaded, so those files are unlabeled_t. On an enforcing image /
itself is unlabeled, and logind, getty and sshd fail.

Label exactly the upper layer paths like el9-diskless does. The root
is an overlay in untethered mode too, so this covers both. chcon comes
from the image, the initramfs has none.
2026-10-31 01:37:16 +01:00
Markus Hilger 91370cb8a8 Support confluent= in Ubuntu diskless initramfs
Without it the server is only found by link-local discovery, so nodes
behind a DHCP relay never boot. Ported from el9-diskless. The initramfs
has dhcpcd from 24.04 on and only ipconfig before.
2026-10-31 00:50:45 +01:00
Markus Hilger 4e8c7c0a9f Support confluent= in suse16 diskless initramfs
Without it the server is only found by link-local discovery, so nodes
behind a DHCP relay never boot. Ported from el9-diskless, with dhcpcd
in place of dhclient.
2026-10-31 00:50:45 +01:00
Markus Hilger 61c08c0c31 Include af_packet in suse16 diskless initramfs images
The SUSE kernel builds it as a module, so dhcpcd failed with "Address
family not supported" and a diskless node with ipv4_method dhcp never
got an address.
2026-10-31 00:50:45 +01:00
Markus Hilger 3b2a6dcf51 Try each NIC for confluent= in EL diskless
The first NIC with a link may not reach the server. Also stop the
DHCP client before the static setup, its lease would expire in the
booted image.
2026-10-31 00:03:09 +01:00
Markus Hilger 1ef80f5f19 Skip bringing up the deploy nic without a discovered ifidx
With confluent= on the kernel command line, e.g. behind a DHCP relay,
apiclient writes no /tmp/confluent.ifidx and cat and nmcli printed
errors.
2026-10-30 23:20:37 +01:00
Markus Hilger a19c1fabe0 Support confluent= in el9 and el10 diskless initramfs
Without it the server is only found by link-local discovery, so nodes
behind a DHCP relay never boot. Ported from el8-diskless.
2026-10-30 22:56:05 +01:00
Jarrod Johnson 9186b6418a Merge pull request #329 from Obihoernchen/fix/installtodisk-selinux-relabel
Label disk installs of diskless images for SELinux at the end
2026-10-30 17:25:55 -04:00
Jarrod Johnson f3ebf3001d Merge pull request #331 from Obihoernchen/fix/runansible-multiple-plays
Run every playbook of a remote configuration
2026-10-30 17:24:53 -04:00
Jarrod Johnson 12ad4aea1c Merge pull request #332 from Obihoernchen/feat/imgutil-selinux
Add imgutil build --selinux support
2026-10-30 17:24:33 -04:00
Jarrod Johnson 2b429119b5 Merge pull request #330 from Obihoernchen/fix/runansible-ssh-keepalive
Use ssh keepalives for ansible plays
2026-10-30 17:20:06 -04:00
Markus Hilger 5175e29a0a Remove the diskless dracut config before SELinux labeling
Removing it afterwards copied /etc/dracut.conf.d up unlabeled in
tethered mode on images built with SELinux. Skip the whiteout that the
removal leaves in the upper layer.
2026-10-30 20:27:53 +01:00
Markus Hilger a9a57fe93b Add opt-in SELinux support to imgutil build for EL images
imgutil build --selinux installs the targeted policy and keeps SELinux enforcing.
imgutil pack labels images that enable SELinux with their own policy.
2026-10-30 20:27:53 +01:00
Markus Hilger 680ff433ed Run every playbook of a remote configuration
asyncio has no sock_close, so the first playbook ended with an
AttributeError and the remaining ones were silently skipped.
2026-10-30 19:31:00 +01:00
Markus Hilger 0e03b07939 Use ssh keepalives for ansible plays
A node reset during a play left ssh waiting forever, which blocked
every later remote configuration of that node, like an install's post.d.
2026-10-30 18:42:48 +01:00
Markus Hilger e0be3ce5f7 Label disk installs of diskless images for SELinux at the end
The install runs before a policy is loaded, so the module index from
kernel-install and files of later post scripts stayed unlabeled and
systemd-modules-load failed. Relabel every local filesystem last.
2026-10-30 18:30:01 +01:00
Jarrod Johnson 57a4659d59 Merge pull request #328 from Obihoernchen/fix/diskless-untethered-selinux
Label untethered diskless roots for SELinux
2026-10-30 13:10:18 -04:00
Markus Hilger 63cdb6b2ed Label untethered diskless roots for SELinux
On an untethered root, files the initramfs writes before policy load
and sockets that unsquashfs creates without attributes have no label.
Label every inode without one, as the upper layer is in tethered mode.
2026-10-30 15:53:03 +01:00
Jarrod Johnson 4f44dd8d82 Merge pull request #327 from Obihoernchen/fix/installtodisk-untethered-ubuntu
Keep the image mounted for installtodisk on Ubuntu
2026-10-30 08:16:51 -04:00
Markus Hilger b0561c61d2 Keep the image mounted for installtodisk on Ubuntu
Like on EL9 and EL10, an untethered or uncompressed boot unmounts the
image before installimage runs, so image2disk.py has nothing to copy.
2026-10-30 13:09:24 +01:00
Jarrod Johnson 9faa3d4367 Merge pull request #326 from Obihoernchen/fix/imgutil-pack-imagemethod-hint
Mention uncompressed in the profile.yaml written by imgutil pack
2026-10-30 08:04:59 -04:00
Jarrod Johnson edf911ec40 Merge pull request #325 from Obihoernchen/fix/imgutil-virtio-blk
Include virtio_blk in diskless initramfs images
2026-10-30 08:03:22 -04:00
Markus Hilger 0bd7fd94f5 Mention uncompressed in the profile.yaml written by imgutil pack
Only untethered and tethered were listed.
2026-10-30 13:02:56 +01:00
Jarrod Johnson 58906b00cc Merge pull request #324 from Obihoernchen/fix/installtodisk-untethered
Keep the image mounted when installing a diskless image to disk
2026-10-30 08:02:14 -04:00
Markus Hilger 138f221a9e Include virtio_blk in diskless initramfs images
Without it installtodisk finds no disk on KVM guests. The SUSE 15 list
had no virtio drivers at all, add virtio_net, virtio_blk and virtio_scsi.
2026-10-30 13:00:55 +01:00
Jarrod Johnson 67b5a60c78 Merge pull request #323 from Obihoernchen/fix/diskless-tethered-selinux
Label overlay upper layer of diskless images for SELinux
2026-10-30 08:00:27 -04:00
Jarrod Johnson b2f2b8bce6 Merge pull request #322 from Obihoernchen/fix/nodedeploy-diskless-clear
Do not report a cleared diskless profile as completed
2026-10-30 07:55:49 -04:00
Jarrod Johnson ece4483d38 Merge pull request #321 from Obihoernchen/fix/deployment-storage-devname
Accept plain device names in deployment.storage and fail on no match
2026-10-30 07:54:16 -04:00
Markus Hilger dc909e6f0b Label overlay upper layer of diskless images for SELinux
With a tethered root (and on EL8 always), the initramfs writes the
overlay upper layer before the SELinux policy is loaded, so those files
are unlabeled_t. On a captured enforcing image sshd-keygen then cannot
search / and the node comes up without sshd.

Label exactly the upper layer paths with matchpathcon and chcon.
setfiles would recurse into the merged tree and restorecon is a no-op
before policy load. Built images have SELinux disabled and skip this.
2026-10-30 12:43:30 +01:00
Markus Hilger 8bec81fb95 Keep the image mounted when installing a diskless image to disk
With installtodisk and confluent_imagemethod=untethered (or
uncompressed) imageboot.sh first extracts the image to RAM and tears
down the image mount and the cryptimg device. installimage then hands
the empty /mnt/remote to image2disk.py, which wipes the target disk and
fails with:

  FileNotFoundError: [Errno 2] No such file or directory: '/dev/mapper/cryptimg'

Writing the image to disk never needs the RAM copy, so treat the image
method as tethered when installtodisk is set. The same profile can then
be switched between untethered and installtodisk by only adding or
removing installtodisk.
2026-10-30 09:55:43 +01:00
Markus Hilger dd353aec04 Do not report a cleared diskless profile as completed
A booted diskless node keeps its profile in deployment.pendingprofile
and records it in deployment.profile with state "booted". After
nodedeploy -c clears the pending profile, nodedeploy printed
"completed: <profile> (booted - ...)", although no deployment completed
and the node will not network boot that profile again.

Show "booted, not pending: <profile>" for that case instead.
2026-10-30 09:44:50 +01:00
Markus Hilger 4aa6bf8af5 Accept plain device names in deployment.storage and fail on no match
The attribute help promises "a specific device name", but getinstalldisk
only understood "m2" and "/dev/<name>". A plain "nvme0n1" aborted the
install with "Unknown deployment.storage specification", and a
"/dev/<name>" that matched no disk was silently ignored, so the OS went
to whatever disk the default ordering picked. For an attribute meant to
pin the OS disk that is the dangerous failure mode.

Accept a kernel name with or without /dev/ and resolve /dev/disk/by-*
links to their kernel name, so a disk can be pinned by a stable path.
When nothing matches, fail with "No disks match" like the m2 filter
already does. Document the accepted forms in the attribute help.
2026-10-30 09:43:54 +01:00
Jarrod Johnson 0c57184ef1 Fix fish completion packaging for debian friendliness 2026-10-29 14:06:45 -04:00
Jarrod Johnson 399da7ffcc Merge remote-tracking branch 'xcat/master' 2026-10-29 10:28:50 -04:00
Jarrod Johnson d25c3f3ff0 Merge pull request #315 from Obihoernchen/fix/server-rsync-dependency
Recommend rsync for server file synchronization
2026-10-29 10:28:10 -04:00
Jarrod Johnson cb92a3f332 Merge pull request #320 from robertcaliman/rcaliman/add-vroc-support-for-esxi
Add support for Intel VROC in ESXi
2026-10-29 10:27:44 -04:00
Jarrod Johnson 302afc5b06 Fix issues with various '/' included in tab completion 2026-10-29 10:12:20 -04:00
Robert Caliman cd3c337880 Add support for Intel VROC in ESXi 2026-10-29 16:12:18 +02:00
Jarrod Johnson 472ea95314 Do not enable mouse tracking in read-only screenshot mode
When resizing, need to only capture mouse if
we are actually set to handle them.
2026-10-29 09:00:47 -04:00
Jarrod Johnson ac1ce55387 Rework drawing and resize in nodeconsole -tv
Move work out of the signal handler

Have the full resize happen in the draw worker.

Have resize events be skipped if the resize doesn't keep up.

After a redraw, discard queue items that would have had wrong geometry.

No more weird lag on resize and no more stray misshapen screenshots after resize.
2026-10-28 17:39:39 -04:00