From fcdd31167becbc46b1d9441c2879502db5dbcf02 Mon Sep 17 00:00:00 2001 From: Markus Hilger Date: Tue, 20 Oct 2026 18:54:26 +0200 Subject: [PATCH 1/3] Recommend rsync for server file synchronization Add rsync to the server RPM recommends and Debian recommends lists so syncfiles works on minimal management nodes. Fixes #314 --- confluent_server/builddeb | 2 +- confluent_server/confluent_server.spec.tmpl | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/confluent_server/builddeb b/confluent_server/builddeb index a4b2cada..0603984d 100755 --- a/confluent_server/builddeb +++ b/confluent_server/builddeb @@ -40,7 +40,7 @@ if [ "$OPKGNAME" = "confluent-server" ]; then sed -i 's/^\(Depends:.*\)/\1, confluent-client, python3-lxml, python3-cryptography, python3-websocket, python3-msgpack, python3-aiohttp, python3-pyparsing, python3-asyncssh, python3-pysnmp4, python3-libarchive-c, confluent-vtbufferd, python3-netifaces, python3-yaml, python3-dateutil, python3-crypt-r, python3-numpy, python3-pillow/' debian/control fi # only BIOS settings on IMM2-era Lenovo BMCs need it, and Ubuntu does not package it - sed -i '/^Depends:/a Recommends: python3-eficompressor' debian/control + sed -i '/^Depends:/a Recommends: python3-eficompressor, rsync' debian/control echo 'confluent_client confluent-client' >> debian/pydist-overrides fi diff --git a/confluent_server/confluent_server.spec.tmpl b/confluent_server/confluent_server.spec.tmpl index ddfb9443..84a9143e 100644 --- a/confluent_server/confluent_server.spec.tmpl +++ b/confluent_server/confluent_server.spec.tmpl @@ -18,6 +18,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot Prefix: %{_prefix} BuildArch: noarch Requires: confluent_vtbufferd +Recommends: rsync %if "%{dist}" == ".el9" Requires: python3-asyncssh, python3-cryptography, confluent_client == %{version}, python3-pyparsing, python3-netifaces, python3-pyasn1 >= 0.2.3, python3-pysnmp >= 4.3.4, python3-lxml, python3-setuptools, python3-dateutil, python3-cffi, python3-pyOpenSSL python3-msgpack python3-libarchive-c python3-yaml python3-yarl python3-aiohttp openssl iproute # httpapi drops passkey support without webauthn, and only BIOS settings on From 4e55d9f1e80421de5bfe06f1038d40147e9d354b Mon Sep 17 00:00:00 2001 From: Markus Hilger Date: Tue, 20 Oct 2026 19:32:47 +0200 Subject: [PATCH 2/3] Add error message if rsync is missing --- confluent_server/confluent/syncfiles.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/confluent_server/confluent/syncfiles.py b/confluent_server/confluent/syncfiles.py index afba5da2..71c4916a 100644 --- a/confluent_server/confluent/syncfiles.py +++ b/confluent_server/confluent/syncfiles.py @@ -349,6 +349,10 @@ def start_syncfiles(nodename, cfg, suffixes, principals=[]): sl = SyncList(synclist, nodename, cfg) if not (sl.appendmap or sl.mergemap or sl.replacemap or sl.appendoncemap): return 200, 'OK', 'Empty synclist' # the synclist has no actual entries + if not shutil.which('rsync'): + return 500, 'Error', ( + 'File synchronization requires rsync. ' + 'Install rsync on the Confluent server and retry.') if nodename in syncrunners: if syncrunners[nodename].done(): try: From cd3c3378800f9c8eeff435fc61d726b7574ac75b Mon Sep 17 00:00:00 2001 From: Robert Caliman Date: Thu, 29 Oct 2026 16:12:18 +0200 Subject: [PATCH 3/3] Add support for Intel VROC in ESXi --- .../esxi7/profiles/hypervisor/scripts/getinstalldisk | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/confluent_osdeploy/esxi7/profiles/hypervisor/scripts/getinstalldisk b/confluent_osdeploy/esxi7/profiles/hypervisor/scripts/getinstalldisk index 9853599b..b32cdc59 100644 --- a/confluent_osdeploy/esxi7/profiles/hypervisor/scripts/getinstalldisk +++ b/confluent_osdeploy/esxi7/profiles/hypervisor/scripts/getinstalldisk @@ -109,7 +109,9 @@ class DiskInfo(object): if self.size < 2048: raise SilentException("Too small") if storagespec and storagespec == 'm2': - if self.model.lower() not in PRIORITY_MODELS and not devinfo.get('m2_slot', None): + if (self.model.lower() not in PRIORITY_MODELS + and not devinfo.get('m2_slot', None) + and self.driver != 'iavmd'): raise SilentException("Not an M.2 disk") @@ -121,6 +123,8 @@ class DiskInfo(object): return 0 if self.model.lower() in PRIORITY_MODELS: return 0 + if self.driver == 'iavmd': + return 1 if self.driver == 'vmw_ahci': return 2 if self.driver == 'nvme_pcie':