[pve-devel] [PATCH container] PVE::LXC::Setup::Fedora: use systemd-networkd

Stoiko Ivanov s.ivanov at proxmox.com
Tue Jul 17 18:13:45 CEST 2018


Upstream's templates seem to have switched to systemd-networkd for
fedora > 25. Since then various workarounds have been suggested (starting
the legacy network.service in /etc/rc.local). This patch tries to accomodate
both network-configuration options for the affected and available templates
(25, 26, 27), by configuring both services.

Signed-off-by: Stoiko Ivanov <s.ivanov at proxmox.com>
---
 src/PVE/LXC/Setup/Fedora.pm | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/src/PVE/LXC/Setup/Fedora.pm b/src/PVE/LXC/Setup/Fedora.pm
index d19b162..c54aeee 100644
--- a/src/PVE/LXC/Setup/Fedora.pm
+++ b/src/PVE/LXC/Setup/Fedora.pm
@@ -31,4 +31,24 @@ sub setup_init {
     $self->setup_container_getty_service($conf);
 }
 
+sub setup_network {
+    my ($self, $conf) = @_;
+
+    # systemd-networkd is default in fedora-templates from upstream since
+    # 25, however quite a few workarounds were posted in the forum, recommending
+    # to start the (legacy) network.service via /etc/rc.local for fedora > 25.
+    # /etc/sysconfig/network is not present in the templates for fedora > 25.
+    # use its presence to decide, whether to configure the legacy config
+    # additionally for 25, 26, 27.
+
+    my $sysconfig_used = $self->ct_file_exists("/etc/sysconfig/network");
+
+    my $version = $self->{version};
+
+    my $setup_sysconfig = 1 if ($version <= 24 || ($self->{version} <= 27 && $sysconfig_used));
+    my $setup_systemd = 1 if ($self->{version} >= 25 );
+
+    $self->SUPER::setup_network($conf) if $setup_sysconfig;
+    $self->SUPER::setup_systemd_networkd($conf) if $setup_systemd;
+}
 1;
-- 
2.11.0





More information about the pve-devel mailing list