From 60ecf3d54790a21ffcfbec2b9d171344d62b12a7 Mon Sep 17 00:00:00 2001 From: Josh Curl Date: Mon, 11 Apr 2016 16:44:33 -0700 Subject: [PATCH] If DNS override is set, pass `--nohook resolv.conf` to dhcpd --- cmd/network/network.go | 14 ++++++++------ trash.yml | 2 +- vendor/github.com/rancher/netconf/netconf_linux.go | 8 ++++++-- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/cmd/network/network.go b/cmd/network/network.go index e47be68c..b8474de7 100644 --- a/cmd/network/network.go +++ b/cmd/network/network.go @@ -48,11 +48,18 @@ func Main() { if err != nil { log.Fatal(err) } + hostname, _ := cloudinit.SetHostname(cfg) // ignore error log.Infof("Network: hostname: '%s'", hostname) + + if _, err := resolvconf.Build("/etc/resolv.conf", cfg.Rancher.Network.Dns.Nameservers, cfg.Rancher.Network.Dns.Search, nil); err != nil { + log.Error(err) + } + if err := netconf.ApplyNetworkConfigs(&cfg.Rancher.Network); err != nil { log.Error(err) } + hostname, _ = cloudinit.SetHostname(cfg) // ignore error log.Infof("Network: hostname: '%s' (from DHCP, if not set by cloud-config)", hostname) if hostname != "" { @@ -76,12 +83,7 @@ func Main() { log.Error(err) } } - if cfg.Rancher.Network.Dns.Override { - log.WithFields(log.Fields{"nameservers": cfg.Rancher.Network.Dns.Nameservers}).Info("Override nameservers") - if _, err := resolvconf.Build("/etc/resolv.conf", cfg.Rancher.Network.Dns.Nameservers, cfg.Rancher.Network.Dns.Search, nil); err != nil { - log.Error(err) - } - } + if f, err := os.Create(NETWORK_DONE); err != nil { log.Error(err) } else { diff --git a/trash.yml b/trash.yml index c6a08a61..317be887 100644 --- a/trash.yml +++ b/trash.yml @@ -70,7 +70,7 @@ import: version: v1.10.3 - package: github.com/rancher/netconf - version: f953ace624d8bade198682d343eb7e25d9c8899c + version: 6cd9ea0b3a45482c9e9aee9be9ca88c96b2f71e6 - package: github.com/ryanuber/go-glob version: 0067a9abd927e50aed5190662702f81231413ae0 diff --git a/vendor/github.com/rancher/netconf/netconf_linux.go b/vendor/github.com/rancher/netconf/netconf_linux.go index 74c66f37..2ed5cbb7 100644 --- a/vendor/github.com/rancher/netconf/netconf_linux.go +++ b/vendor/github.com/rancher/netconf/netconf_linux.go @@ -187,7 +187,7 @@ func ApplyNetworkConfigs(netCfg *NetworkConfig) error { for iface, args := range dhcpLinks { wg.Add(1) go func(iface, args string) { - runDhcp(iface, args) + runDhcp(netCfg, iface, args) wg.Done() }(iface, args) } @@ -197,7 +197,7 @@ func ApplyNetworkConfigs(netCfg *NetworkConfig) error { return err } -func runDhcp(iface string, argstr string) { +func runDhcp(netCfg *NetworkConfig, iface string, argstr string) { log.Infof("Running DHCP on %s", iface) args := []string{} if argstr != "" { @@ -211,6 +211,10 @@ func runDhcp(iface string, argstr string) { args = defaultDhcpArgs } + if netCfg.Dns.Override { + args = append(args, "--nohook", "resolv.conf") + } + args = append(args, iface) cmd := exec.Command(args[0], args[1:]...) cmd.Stdout = os.Stdout