summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Moser <smoser@ubuntu.com>2016-06-20 17:07:10 -0400
committerScott Moser <smoser@ubuntu.com>2016-06-20 17:07:10 -0400
commite9d1c04cdfe407d74bfd97b46cf5def84c588ff3 (patch)
treec67eaf601903947d866fe5d2bfdc9e8078927f4d
parent0f0a75530de14c90a744cc751b151ee45f578096 (diff)
downloadcloud-init-e9d1c04cdfe407d74bfd97b46cf5def84c588ff3.tar.gz
add a header to rendered ENI file describing its content
-rw-r--r--cloudinit/distros/debian.py8
-rw-r--r--cloudinit/net/eni.py4
2 files changed, 11 insertions, 1 deletions
diff --git a/cloudinit/distros/debian.py b/cloudinit/distros/debian.py
index 244af349..5ae9a509 100644
--- a/cloudinit/distros/debian.py
+++ b/cloudinit/distros/debian.py
@@ -43,6 +43,13 @@ APT_GET_WRAPPER = {
'enabled': 'auto',
}
+ENI_HEADER = """# This file is generated from information provided by
+# the datasource. Changes to it will not persist across an instance.
+# To disable cloud-init's network configuration capabilities, write a file
+# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
+# network: {config: disabled}
+"""
+
class Distro(distros.Distro):
hostname_conf_fn = "/etc/hostname"
@@ -59,6 +66,7 @@ class Distro(distros.Distro):
self.osfamily = 'debian'
self._net_renderer = eni.Renderer({
'eni_path': self.network_conf_fn,
+ 'eni_header': ENI_HEADER,
'links_prefix_path': None,
'netrules_path': None,
})
diff --git a/cloudinit/net/eni.py b/cloudinit/net/eni.py
index ccd16ba7..e5ed10fd 100644
--- a/cloudinit/net/eni.py
+++ b/cloudinit/net/eni.py
@@ -303,6 +303,7 @@ class Renderer(renderer.Renderer):
if not config:
config = {}
self.eni_path = config.get('eni_path', 'etc/network/interfaces')
+ self.eni_header = config.get('eni_header', None)
self.links_path_prefix = config.get(
'links_path_prefix', 'etc/systemd/network/50-cloud-init-')
self.netrules_path = config.get(
@@ -417,7 +418,8 @@ class Renderer(renderer.Renderer):
def render_network_state(self, target, network_state):
fpeni = os.path.join(target, self.eni_path)
util.ensure_dir(os.path.dirname(fpeni))
- util.write_file(fpeni, self._render_interfaces(network_state))
+ header = self.eni_header if self.eni_header else ""
+ util.write_file(fpeni, header + self._render_interfaces(network_state))
if self.netrules_path:
netrules = os.path.join(target, self.netrules_path)