diff --git a/SOURCES/cloud-init-17.1-no-override-default-network.patch b/SOURCES/cloud-init-17.1-no-override-default-network.patch
new file mode 100644
index 0000000..7c21c83
--- /dev/null
+++ b/SOURCES/cloud-init-17.1-no-override-default-network.patch
@@ -0,0 +1,200 @@
+diff -rup cloud-init-17.1.orig/cloudinit/net/sysconfig.py cloud-init-17.1/cloudinit/net/sysconfig.py
+--- cloud-init-17.1.orig/cloudinit/net/sysconfig.py	2018-03-26 19:22:35.693111559 +0200
++++ cloud-init-17.1/cloudinit/net/sysconfig.py	2018-03-26 23:47:41.424803588 +0200
+@@ -586,7 +586,17 @@ class Renderer(renderer.Renderer):
+ 
+         # always write /etc/sysconfig/network configuration
+         sysconfig_path = util.target_path(target, "etc/sysconfig/network")
+-        netcfg = [_make_header(), 'NETWORKING=yes']
++        # Make sure that existing lines, other than overriding ones, remain
++        netcfg = []
++        for line in util.load_file(sysconfig_path, quiet=True).split('\n'):
++            if 'cloud-init' in line:
++                break
++            if not line.startswith(('NETWORKING=',
++                                    'IPV6_AUTOCONF=',
++                                    'NETWORKING_IPV6=')):
++                netcfg.append(line)
++        # Now generate the cloud-init portion of sysconfig/network
++        netcfg.extend([_make_header(), 'NETWORKING=yes'])
+         if network_state.use_ipv6:
+             netcfg.append('NETWORKING_IPV6=yes')
+             netcfg.append('IPV6_AUTOCONF=no')
+diff -rup cloud-init-17.1.orig/tests/unittests/test_distros/test_netconfig.py cloud-init-17.1/tests/unittests/test_distros/test_netconfig.py
+--- cloud-init-17.1.orig/tests/unittests/test_distros/test_netconfig.py	2018-03-26 19:22:35.717111557 +0200
++++ cloud-init-17.1/tests/unittests/test_distros/test_netconfig.py	2018-03-26 22:08:25.008717651 +0200
+@@ -384,6 +384,82 @@ hn0: flags=8843<UP,BROADCAST,RUNNING,SIM
+             buf.write(content)
+             write_bufs[filename] = buf
+ 
++        def replace_load_file(filename, *args, **kwargs):
++            if filename == '/etc/sysconfig/network':
++                return 'TEST=yes\nTEST2=yes'
++            else:
++                return ''
++
++        with ExitStack() as mocks:
++            mocks.enter_context(
++                mock.patch.object(util, 'write_file', replace_write))
++            mocks.enter_context(
++                mock.patch.object(util, 'load_file', replace_load_file))
++            mocks.enter_context(
++                mock.patch.object(os.path, 'isfile', return_value=False))
++
++            rh_distro.apply_network(BASE_NET_CFG, False)
++
++            self.assertEqual(len(write_bufs), 4)
++            self.assertIn('/etc/sysconfig/network-scripts/ifcfg-lo',
++                          write_bufs)
++            write_buf = write_bufs['/etc/sysconfig/network-scripts/ifcfg-lo']
++            expected_buf = '''
++DEVICE="lo"
++ONBOOT=yes
++'''
++            self.assertCfgEquals(expected_buf, str(write_buf))
++            self.assertEqual(write_buf.mode, 0o644)
++
++            self.assertIn('/etc/sysconfig/network-scripts/ifcfg-eth0',
++                          write_bufs)
++            write_buf = write_bufs['/etc/sysconfig/network-scripts/ifcfg-eth0']
++            expected_buf = '''
++DEVICE="eth0"
++BOOTPROTO="static"
++NETMASK="255.255.255.0"
++IPADDR="192.168.1.5"
++ONBOOT=yes
++GATEWAY="192.168.1.254"
++BROADCAST="192.168.1.0"
++'''
++            self.assertCfgEquals(expected_buf, str(write_buf))
++            self.assertEqual(write_buf.mode, 0o644)
++
++            self.assertIn('/etc/sysconfig/network-scripts/ifcfg-eth1',
++                          write_bufs)
++            write_buf = write_bufs['/etc/sysconfig/network-scripts/ifcfg-eth1']
++            expected_buf = '''
++DEVICE="eth1"
++BOOTPROTO="dhcp"
++ONBOOT=yes
++'''
++            self.assertCfgEquals(expected_buf, str(write_buf))
++            self.assertEqual(write_buf.mode, 0o644)
++
++            self.assertIn('/etc/sysconfig/network', write_bufs)
++            write_buf = write_bufs['/etc/sysconfig/network']
++            expected_buf = '''
++# Created by cloud-init v. 0.7
++NETWORKING=yes
++TEST=yes
++TEST2=yes
++'''
++            self.assertCfgEquals(expected_buf, str(write_buf))
++            self.assertEqual(write_buf.mode, 0o644)
++
++    def test_simple_write_rh_no_extra(self):
++        rh_distro = self._get_distro('rhel')
++
++        write_bufs = {}
++
++        def replace_write(filename, content, mode=0o644, omode="wb"):
++            buf = WriteBuffer()
++            buf.mode = mode
++            buf.omode = omode
++            buf.write(content)
++            write_bufs[filename] = buf
++
+         with ExitStack() as mocks:
+             mocks.enter_context(
+                 mock.patch.object(util, 'write_file', replace_write))
+@@ -453,6 +529,12 @@ NETWORKING=yes
+             buf.write(content)
+             write_bufs[filename] = buf
+ 
++        def replace_load_file(filename, *args, **kwargs):
++            if filename == '/etc/sysconfig/network':
++                return 'TEST=yes\nTEST2=yes'
++            else:
++                return ''
++
+         with ExitStack() as mocks:
+             # sysconfig availability checks
+             mocks.enter_context(
+@@ -460,7 +542,7 @@ NETWORKING=yes
+             mocks.enter_context(
+                 mock.patch.object(util, 'write_file', replace_write))
+             mocks.enter_context(
+-                mock.patch.object(util, 'load_file', return_value=''))
++                mock.patch.object(util, 'load_file', replace_load_file))
+             mocks.enter_context(
+                 mock.patch.object(os.path, 'isfile', return_value=True))
+ 
+@@ -509,6 +591,8 @@ USERCTL=no
+             expected_buf = '''
+ # Created by cloud-init v. 0.7
+ NETWORKING=yes
++TEST=yes
++TEST2=yes
+ '''
+             self.assertCfgEquals(expected_buf, str(write_buf))
+             self.assertEqual(write_buf.mode, 0o644)
+@@ -525,13 +609,20 @@ NETWORKING=yes
+             buf.write(content)
+             write_bufs[filename] = buf
+ 
++        def replace_load_file(filename, *args, **kwargs):
++            if filename == '/etc/sysconfig/network':
++                return 'TEST=yes\nTEST2=yes'
++            else:
++                return ''
++
+         with ExitStack() as mocks:
+             mocks.enter_context(
+                 mock.patch.object(util, 'write_file', replace_write))
+             mocks.enter_context(
+-                mock.patch.object(util, 'load_file', return_value=''))
++                mock.patch.object(util, 'load_file', replace_load_file))
+             mocks.enter_context(
+                 mock.patch.object(os.path, 'isfile', return_value=False))
++
+             rh_distro.apply_network(BASE_NET_CFG_IPV6, False)
+ 
+             self.assertEqual(len(write_bufs), 4)
+@@ -587,6 +678,8 @@ IPV6_DEFAULTGW="2607:f0d0:1002:0011::1"
+ NETWORKING=yes
+ NETWORKING_IPV6=yes
+ IPV6_AUTOCONF=no
++TEST=yes
++TEST2=yes
+ '''
+             self.assertCfgEquals(expected_buf, str(write_buf))
+             self.assertEqual(write_buf.mode, 0o644)
+@@ -604,13 +697,19 @@ IPV6_AUTOCONF=no
+             buf.write(content)
+             write_bufs[filename] = buf
+ 
++        def replace_load_file(filename, *args, **kwargs):
++            if filename == '/etc/sysconfig/network':
++                return 'TEST=yes\nTEST2=yes'
++            else:
++                return ''
++
+         with ExitStack() as mocks:
+             mocks.enter_context(
+                 mock.patch.object(util, 'which', return_value=True))
+             mocks.enter_context(
+                 mock.patch.object(util, 'write_file', replace_write))
+             mocks.enter_context(
+-                mock.patch.object(util, 'load_file', return_value=''))
++                mock.patch.object(util, 'load_file', replace_load_file))
+             mocks.enter_context(
+                 mock.patch.object(os.path, 'isfile', return_value=True))
+ 
+@@ -658,6 +757,8 @@ USERCTL=no
+ NETWORKING=yes
+ NETWORKING_IPV6=yes
+ IPV6_AUTOCONF=no
++TEST=yes
++TEST2=yes
+ '''
+             self.assertCfgEquals(expected_buf, str(write_buf))
+             self.assertEqual(write_buf.mode, 0o644)
diff --git a/SPECS/cloud-init.spec b/SPECS/cloud-init.spec
index 4f3b5a0..4345db5 100644
--- a/SPECS/cloud-init.spec
+++ b/SPECS/cloud-init.spec
@@ -7,7 +7,7 @@
 
 Name:           cloud-init
 Version:        18.2
-Release:        1%{?dist}.1
+Release:        1%{?dist}.1.0.1
 Summary:        Cloud instance init scripts
 
 Group:          System Environment/Base
@@ -36,6 +36,10 @@ Patch13: ci-Adding-disk_setup-to-rhel-cloud.cfg.patch
 
 Patch9999: cloud-init-centos-user.patch 
 
+# Keep old properties in /etc/sysconfig/network
+# https://bugzilla.redhat.com/show_bug.cgi?id=1558641
+Patch10000: cloud-init-17.1-no-override-default-network.patch
+
 # Deal with noarch -> arch
 # https://bugzilla.redhat.com/show_bug.cgi?id=1067089
 Obsoletes:      cloud-init < 0.7.5-3
@@ -187,6 +191,9 @@ fi
 %config(noreplace) %{_sysconfdir}/rsyslog.d/21-cloudinit.conf
 
 %changelog
+* Fri Dec 14 2018 Patrick Uiterwijk <puiterwijk@redhat.com> - 18.2-1.el7_6.1.0.1
+- Add patch to retain old values of /etc/sysconfig/network
+
 * Thu Sep 27 2018 Miroslav Rezanina <mrezanin@redhat.com> - 18.2-1.el7_6.1
 - ci-Adding-systemd-mount-options-to-wait-for-cloud-init.patch [bz#1633282]
 - ci-Azure-Ignore-NTFS-mount-errors-when-checking-ephemer.patch [bz#1633282]