Step 1: Extract addons.cpio
Create a temporary workspace and extract the existing archive.
mkdir -p /tmp/confluent-mod
cd /tmp/confluent-mod
# Locate and extract the addons.cpio (usually a symlink to /opt/confluent/lib/osdeploy/...)
cpio -idmv < /opt/confluent/lib/osdeploy/ubuntu24.04/initramfs/addons.cpio
Step 2: Edit the Scripts
Apply the logic discussed in Modification 1 and Modification 2 using your preferred editor:
For the complete script contents, please refer to the attached files:
vi scripts/init-premount/confluent
vi scripts/casper-bottom/99confluent
Step 3: Repack addons.cpio
Backup the original file and create the new archive using the newc format.
# Backup original
cp /opt/confluent/lib/osdeploy/ubuntu24.04/initramfs/addons.cpio /opt/confluent/lib/osdeploy/ubuntu24.04/initramfs/addons.cpio.bak
# Repack
find . | cpio -H newc -o > /opt/confluent/lib/osdeploy/ubuntu24.04/initramfs/addons.cpio
Step 4: Server-Side Configuration
To allow clortho to successfully connect to the CredServer (port 13001) across different subnets, the server-side configuration must be updated. This is because credserver.py performs a trust check on the source IP via address_is_somewhat_trusted(). If the subnet is not defined in trusted.subnets, the client will enter an infinite retry loop.
Configuration Commands:
# Allow CredServer to accept connections from the VLAN 241 subnet
nodeattrib node241 trusted.subnets=172.19.241.0/24
# For deployments with multiple VLANs, use group attributes
nodegroupattrib everything trusted.subnets="172.19.241.0/24,172.19.242.0/24,172.19.243.0/24"
Step 5: profile.yaml Adjustments
To trigger the newly implemented routed deployment workflow, the profile.yaml must be updated to include the confluent= kernel argument.
Important Notes:
ip=dhcp: Must be preserved so that the casper function configure_networking can successfully obtain an IP address via DHCP in the initramfs.
confluent=<IP>: Set this to the IPv4 address of your management server.
- Remove
BOOTIF: It is recommended to remove BOOTIF=01-${net0/mac:hexhyp} in relay environments, as it can sometimes lead to interface binding issues when crossing subnets.
- Key Uniqueness: Ensure there is only one
kernelargs: key; YAML will only respect the last instance if duplicated.
Updated profile.yaml Example:
label: Ubuntu 24.04.3 x86_64 (Default Profile)
kernelargs: console=ttyS1,115200n8 earlycon=uart8250,io,0x2f8,115200n8 console=tty0 osprofile=ubuntu-24.04.3-x86_64-default ip=dhcp confluent=172.19.54.250
Step 6: Regenerate Boot Images
Update the deployment profile to incorporate the modified addons.cpio and profile.yaml into the final boot images.
osdeploy updateboot ubuntu-24.04.3-x86_64-default
Note: I am opening this issue just to share my experience and this workaround with the community. Feel free to close it at any time.
confluent.txt
99confluent.txt
Step 1: Extract addons.cpio
Create a temporary workspace and extract the existing archive.
Step 2: Edit the Scripts
Apply the logic discussed in Modification 1 and Modification 2 using your preferred editor:
For the complete script contents, please refer to the attached files:
scripts/init-premount/confluent: confluent.txtscripts/casper-bottom/99confluent: 99confluent.txtStep 3: Repack addons.cpio
Backup the original file and create the new archive using the
newcformat.Step 4: Server-Side Configuration
To allow clortho to successfully connect to the CredServer (port 13001) across different subnets, the server-side configuration must be updated. This is because
credserver.pyperforms a trust check on the source IP viaaddress_is_somewhat_trusted(). If the subnet is not defined intrusted.subnets, the client will enter an infinite retry loop.Configuration Commands:
Step 5: profile.yaml Adjustments
To trigger the newly implemented routed deployment workflow, the
profile.yamlmust be updated to include theconfluent=kernel argument.Important Notes:
ip=dhcp: Must be preserved so that the casper functionconfigure_networkingcan successfully obtain an IP address via DHCP in the initramfs.confluent=<IP>: Set this to the IPv4 address of your management server.BOOTIF: It is recommended to removeBOOTIF=01-${net0/mac:hexhyp}in relay environments, as it can sometimes lead to interface binding issues when crossing subnets.kernelargs:key; YAML will only respect the last instance if duplicated.Updated
profile.yamlExample:Step 6: Regenerate Boot Images
Update the deployment profile to incorporate the modified
addons.cpioandprofile.yamlinto the final boot images.Note: I am opening this issue just to share my experience and this workaround with the community. Feel free to close it at any time.
confluent.txt
99confluent.txt