2
0
mirror of https://github.com/xcat2/confluent.git synced 2026-01-11 18:42:29 +00:00
Commit Graph

2605 Commits

Author SHA1 Message Date
Jarrod Johnson
a1a144d211 Implement plugin managed VNC
To extend beyond the OpenBmc wrapped dialect of VNC,
provide mechanism for plugins to provide
arbitrary cookie, password, url, and protocols parameters.

Implement for ProxMox.
2025-05-30 15:48:15 -04:00
Jarrod Johnson
8d8db070eb Fix mistake in ctypes call in userutil 2025-05-30 15:19:42 -04:00
Jarrod Johnson
4fd7021581 Add EL10 distributions 2025-05-28 11:15:22 -04:00
Jarrod Johnson
40f3ca73c4 Fix mistake in RHEL10 recognition commit 2025-05-22 16:59:16 -04:00
Jarrod Johnson
19c4dc71db Add recognition of RHEL10 media 2025-05-22 14:30:58 -04:00
Jarrod Johnson
94dc266cd4 Add neighbor overflow check to confluent_selfcheck
A common issue in larger layer 2 configurations is
for the neighbor table to be undersized for the number of
nodes.

Detect this manifesting and present a message.
2025-05-22 13:57:16 -04:00
Jarrod Johnson
8722e66583 Try a different dev build versioning
Python 3.12 refuses to use the current versioning
2025-05-21 10:00:47 -04:00
Jarrod Johnson
ee53ee47c1 Fix loss of uppercase during reverse noderange
Reverse noderang was changing names to lower case,
fix to preserve case.
2025-05-15 16:30:12 -04:00
Jarrod Johnson
08738713c9 Handle NLMSG_DONE wherever it may appear in reply
Some kernels may bundle the NLMSG_DONE in the last
useful system call, unlike the previous norm of sending it as
a single message in a terminating system call.
2025-05-15 08:39:45 -04:00
Jarrod Johnson
fca0119331 Amend URL shortening
302 works for iPXE, but not for more limited UEFI
http client.

If we are dealing with UefiHttpBoot, check for a header
from nginx config and use X-Accel-Redirect to induce proxy side
redirect transparent to client.

Otherwise, give an error indicating the issue with the profile
name length and incompatibility with Apache capabilities.
2025-05-13 11:41:11 -04:00
Jarrod Johnson
a7c338786e Fix dotted field names in stub formatter
The stub formatter was chocking on dotted
key names.
2025-05-09 16:39:45 -04:00
Jarrod Johnson
c892af5a1e Implement 8 character max for attribute formatting
When trying to set a node or group attribute, evaluate
length of any potential formatting specification to keep it under
8 characters.

This should prevent even temporary expansion over 10MB for an attribute
on the way to setting it.
2025-05-09 09:34:19 -04:00
Jarrod Johnson
870cee5ed8 Add public TLS certificates to identitiy images
Some profiles may want to have a fixed boot image,
and site specific content limited to the identity payload, or at
least the TLS so it could fetch the rest over https.
2025-05-09 09:11:58 -04:00
Jarrod Johnson
76a66a46e1 Restrict maximum attribute size from formatting
If an expression causes an inordinate amount of memory to be
used, then block it from continuing.

For now, we consider that an expression that expands beyond 16k.  I
am unable to conceive of a use case where someone would want to
use an expression to derive more than 16k as it stands, as we don't
carry any particularly large opaque payloads right now.
2025-05-08 17:01:35 -04:00
Jarrod Johnson
5b1492fed8 Restore error message on chassis without location information. 2025-05-06 15:31:03 -04:00
Jarrod Johnson
ca3a53fde4 Provide specific guidance for bad ssh key permissions 2025-05-06 09:51:11 -04:00
Jarrod Johnson
5ab16851ec Treat '' as equivalent to unset for ipv{}_method
Since it's a really difficult distiction between blank
and unset, make sure this is treated the same.
2025-05-06 09:01:43 -04:00
Jarrod Johnson
d0ae7b46ae Disable the HTML API explorer
It may be the case that no one uses it.
2025-05-02 16:21:47 -04:00
Jarrod Johnson
57ada3728c Change default host to localhost only
Also, fix support for IPv4 addresses as bind_host
2025-05-02 16:18:28 -04:00
Jarrod Johnson
5be99d995a Fix up VM power handling
For both proxmox and vmware, properly model the 'oldstate' feature.

For proxmox, further:
- Wait for power change to actually take effect
- Change reset to a cycle, to help nodesetboot actually work correctly.
2025-05-01 11:44:35 -04:00
Jarrod Johnson
b3ffd632a5 Add proxmox ve example scripts to debian profile 2025-05-01 10:23:42 -04:00
Jarrod Johnson
62988117f1 Another iteration toward debian bookworm support 2025-05-01 09:39:18 -04:00
Jarrod Johnson
71f5ce2b29 Add deployment lock mechanism
This allows users to opt into disabling setting further profile changes.

Nodes may be 'unlocked' (normal), 'autolock' (will lock on next
completion), or 'locked' (unable to change the pending OS profile)
2025-05-01 09:25:05 -04:00
Jarrod Johnson
5cc70846fd Fix asymmetric ipv4/ipv6 attribute PXE response
If a nic were aliased *and* the node had attributes
for ipv6 but used host resolution for ipv4 identity,
it was possible for PXE to pick the wrong way
to respond.

Instruct netutil to specifically consider only the matching family
for the PXE/HTTP boot context
2025-04-30 15:54:46 -04:00
Jarrod Johnson
71f75dbc31 Provide specific error on empty noderanges for expressions
For commands such as nodeshell and noderun,
provide a more useful message when a noderange is empty.
2025-04-29 16:13:33 -04:00
Jarrod Johnson
fd4c2686a4 Add telnets support to vmware console
This allows the console to be credibly secured,
provided the current host is a node to hold the known hosts...
2025-04-29 10:19:08 -04:00
Jarrod Johnson
80bf0c9bfa Clean up a relatively common potential error in XC scan
Do not clutter logs with this condition.
2025-04-29 09:53:19 -04:00
Jarrod Johnson
f89cc5863f Add text console support for Proxmox guests 2025-04-29 09:52:47 -04:00
Jarrod Johnson
6552c90e4d Clean up busy loop and other oddity with vcenter console
Fix it so that common conditions do not
trigger trace logs and busy loops.
2025-04-29 09:52:19 -04:00
Jarrod Johnson
797b5fc478 Fix proxmox power reporting while off 2025-04-28 19:09:56 -04:00
Jarrod Johnson
4c90d431b6 Add preliminary proxmox node support 2025-04-28 17:17:24 -04:00
Jarrod Johnson
20b4f46699 Add screenshot ikvm to vcenter plugin 2025-04-27 10:32:28 -04:00
Jarrod Johnson
74355e5220 Implement partial telnet for VMWare
The vmware serial support demands more proper
telnet support, provide some support for negotiating
do/don't, will/won't opcodes.
2025-04-25 18:41:01 -04:00
Jarrod Johnson
85249ae71b Basic VCenter plugin
This provides nodeinventory (mac and -s most interestingly),
nodepower, nodesetboot (and by extension, nodedeploy -n),
and nodeconsole (console.method=vcenter).
2025-04-25 13:19:38 -04:00
Jarrod Johnson
0bdcaecf82 Do not include localhost in syncfiles consideration
localhost was added to ssh principals, but should not be used
as a candidate in syncfiles.

The syncfileclient should already be filtering this possibility,
but best to filter it everywhere that makes sense.
2025-04-25 08:57:50 -04:00
Jarrod Johnson
b4ef1b484a Amend syncfiles address selection.
A node with private, unroutable addresses relative to
the deployment server may cause the deployment server
to select an unroutable address.

Address this with two strategies.

First, if any of the addresses appear local to the deployment server
networks, prefer those and filter out unroutable.

Secondly, if a node is purely remote, and thus all addresses routable,
then make all the addresses a candidate. However, since the
client can't possibly be using fe80::, we can replace the principal list
with just the clientip, provided it appears in the principal list.
2025-04-25 08:55:10 -04:00
Jarrod Johnson
9f51e256ce Activate vinz on access if doing collective
If a node has not been asked to open any locally managed
video consoles before it was asked to open a peer managed console,
it would fail to start the needed vinz service.

Work around this by detecting that scenario and giving
the vinz subsystem a chance to fix itself.
2025-04-24 08:08:27 -04:00
Jarrod Johnson
52b0ae179e Background console disconnect on node removal 2025-04-23 12:33:40 -04:00
Jarrod Johnson
69240ef492 Add Fedora 42 scripted install support 2025-04-17 08:30:20 -04:00
Jarrod Johnson
9823ffc12d Fix collective serialization of screenshot messages 2025-04-16 09:46:48 -04:00
Jarrod Johnson
a138bef551 Do not worry about failure to reply to a SSDP confluent request 2025-04-15 15:40:17 -04:00
Jarrod Johnson
e27f07ac36 Use IPv4 address for ikvm when fe80 is the local bmc
The fe80:: is hopeless, try to send ipv4 just in case.

Technically speaking, the user may be using a different address
or real ipv6 and the ipv4 guess might fail, but it probably won't.
2025-04-15 14:25:03 -04:00
Jarrod Johnson
f11473c736 Numerous fixes for shell server
On exit, clear the terminal buffer and invalidate the session.  This
avoids the web ui being very attached to a closed, dead session, and
leaking stale buffer to a reused sessionid.

For confetty, treat starting a shell session more like starting a
console session.

If an attempt to resize a dead session is attempted,
ignore failures.
2025-04-14 10:25:25 -04:00
Jarrod Johnson
35e3ca1f1f Have screenshots become normal text
Base64 comes out as ASCII bytes, change to text for
json handling.
2025-04-14 07:53:40 -04:00
Jarrod Johnson
6d1da85991 Implement screenshot via nodeconsole -s
This will grab screenshots from Lenovo systems and
output them to the console, using the kitty image protocol.
2025-04-11 17:13:19 -04:00
Jarrod Johnson
5e72a8b3c0 Handle reseat with '1a/1b' type bay description
This fixes ability to reseat newer chassis when
using the coordinate specification for bay location.
2025-04-09 16:29:57 -04:00
Jarrod Johnson
66265d170a Catch general reseat errors 2025-04-09 16:06:12 -04:00
Jarrod Johnson
9744e0d1b0 Accept XCC and BMC for aliases of each other 2025-04-09 12:19:16 -04:00
Markus Hilger
699efd2f4f Show valid values from attributes.py in man pages 2025-04-09 03:28:15 +02:00
Jarrod Johnson
5d60a6a427 Fix indentation in pdu module 2025-04-08 14:53:36 -04:00