mirror of
https://github.com/rancher/os.git
synced 2025-06-25 14:31:33 +00:00
and release the network device from dhcp if we're not using it Signed-off-by: Sven Dowideit <SvenDowideit@home.org.au>
54 lines
1.3 KiB
Go
Executable File
54 lines
1.3 KiB
Go
Executable File
package network
|
|
|
|
import (
|
|
"github.com/rancher/os/log"
|
|
|
|
"github.com/docker/libnetwork/resolvconf"
|
|
"github.com/rancher/os/config"
|
|
"github.com/rancher/os/hostname"
|
|
"github.com/rancher/os/netconf"
|
|
)
|
|
|
|
func Main() {
|
|
log.InitLogger()
|
|
|
|
cfg := config.LoadConfig()
|
|
ApplyNetworkConfig(cfg)
|
|
|
|
select {}
|
|
}
|
|
|
|
func ApplyNetworkConfig(cfg *config.CloudConfig) {
|
|
log.Infof("Apply Network Config")
|
|
nameservers := cfg.Rancher.Network.DNS.Nameservers
|
|
search := cfg.Rancher.Network.DNS.Search
|
|
userSetDNS := len(nameservers) > 0 || len(search) > 0
|
|
if !userSetDNS {
|
|
nameservers = cfg.Rancher.Defaults.Network.DNS.Nameservers
|
|
search = cfg.Rancher.Defaults.Network.DNS.Search
|
|
}
|
|
|
|
// TODO: don't write to the file if nameservers is still empty
|
|
if _, err := resolvconf.Build("/etc/resolv.conf", nameservers, search, nil); err != nil {
|
|
log.Error(err)
|
|
}
|
|
|
|
if err := hostname.SetHostnameFromCloudConfig(cfg); err != nil {
|
|
log.Error(err)
|
|
}
|
|
|
|
if err := netconf.ApplyNetworkConfigs(&cfg.Rancher.Network); err != nil {
|
|
log.Error(err)
|
|
}
|
|
|
|
// TODO: seems wrong to do this outside netconf
|
|
userSetHostname := cfg.Hostname != ""
|
|
if err := netconf.RunDhcp(&cfg.Rancher.Network, !userSetHostname, !userSetDNS); err != nil {
|
|
log.Error(err)
|
|
}
|
|
|
|
if err := hostname.SyncHostname(); err != nil {
|
|
log.Error(err)
|
|
}
|
|
}
|