From 5fe54957ca837e32f051cd9f177289646131f936 Mon Sep 17 00:00:00 2001 From: Cristian Matiut Date: Tue, 28 Apr 2026 19:15:52 +0000 Subject: [PATCH] Remove cloud_etc_hosts module when DHCP is disabled --- coriolis/osmorphing/base.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/coriolis/osmorphing/base.py b/coriolis/osmorphing/base.py index c3ccc74a..1c3be879 100644 --- a/coriolis/osmorphing/base.py +++ b/coriolis/osmorphing/base.py @@ -429,6 +429,20 @@ def _ensure_cloud_init_not_disabled(self): def _reset_cloud_init_run(self): self._exec_cmd_chroot("cloud-init clean --logs") + def _disable_cloud_manage_etc_hosts(self): + cloud_cfg_path = 'etc/cloud/cloud.cfg' + if not self._test_path(cloud_cfg_path): + return + cloud_cfg_content = self._read_file_sudo(cloud_cfg_path) + cloud_cfg = yaml.load(cloud_cfg_content, Loader=yaml.SafeLoader) + modules = cloud_cfg.get('cloud_init_modules', []) + + if 'update_etc_hosts' in modules: + modules = [m for m in modules if m != 'update_etc_hosts'] + cloud_cfg['cloud_init_modules'] = modules + new_cloud_cfg = yaml.dump(cloud_cfg, Dumper=yaml.SafeDumper) + self._write_file_sudo(cloud_cfg_path, new_cloud_cfg) + def _get_default_cloud_user(self): cloud_cfg_path = 'etc/cloud/cloud.cfg' if not self._test_path(cloud_cfg_path): @@ -468,6 +482,7 @@ def _configure_cloud_init(self): if not self._osmorphing_parameters.get('set_dhcp', True): disabled_network_config = {"network": {"config": "disabled"}} cloud_cfg_mods.update(disabled_network_config) + self._disable_cloud_manage_etc_hosts() self._write_cloud_init_mods_config(cloud_cfg_mods)