2015-03-02 15:03:21 -08:00
|
|
|
package network
|
|
|
|
|
|
|
|
import (
|
2017-05-18 14:44:51 +10:00
|
|
|
"golang.org/x/net/context"
|
|
|
|
|
|
|
|
"github.com/rancher/os/docker"
|
2016-11-23 20:49:35 +10:00
|
|
|
"github.com/rancher/os/log"
|
2015-03-02 15:03:21 -08:00
|
|
|
|
2015-11-30 16:06:21 +05:00
|
|
|
"github.com/docker/libnetwork/resolvconf"
|
2015-10-12 19:50:17 +08:00
|
|
|
"github.com/rancher/os/config"
|
2016-04-14 21:58:07 -07:00
|
|
|
"github.com/rancher/os/hostname"
|
2016-10-19 16:21:35 -07:00
|
|
|
"github.com/rancher/os/netconf"
|
2015-03-02 15:03:21 -08:00
|
|
|
)
|
|
|
|
|
|
|
|
func Main() {
|
2016-11-23 20:49:35 +10:00
|
|
|
log.InitLogger()
|
2016-04-08 13:04:35 -07:00
|
|
|
|
2016-06-01 18:41:55 -07:00
|
|
|
cfg := config.LoadConfig()
|
2016-11-09 11:08:30 -08:00
|
|
|
ApplyNetworkConfig(cfg)
|
|
|
|
|
2017-05-18 14:44:51 +10:00
|
|
|
log.Infof("Restart syslog")
|
|
|
|
client, err := docker.NewSystemClient()
|
|
|
|
if err != nil {
|
|
|
|
log.Error(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
if err := client.ContainerRestart(context.Background(), "syslog", 10); err != nil {
|
|
|
|
log.Error(err)
|
|
|
|
}
|
|
|
|
|
2016-11-09 11:08:30 -08:00
|
|
|
select {}
|
|
|
|
}
|
2016-04-11 16:44:33 -07:00
|
|
|
|
2016-11-09 11:08:30 -08:00
|
|
|
func ApplyNetworkConfig(cfg *config.CloudConfig) {
|
2017-03-21 10:26:52 +00:00
|
|
|
log.Infof("Apply Network Config")
|
2016-11-28 00:06:00 -08:00
|
|
|
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
|
2016-04-15 10:38:31 -07:00
|
|
|
}
|
|
|
|
|
2017-03-07 13:21:14 +10:00
|
|
|
// TODO: don't write to the file if nameservers is still empty
|
2017-06-14 20:45:03 +10:00
|
|
|
log.Infof("Writing resolv.conf (%v) %v", nameservers, search)
|
2016-04-15 10:38:31 -07:00
|
|
|
if _, err := resolvconf.Build("/etc/resolv.conf", nameservers, search, nil); err != nil {
|
2016-04-11 16:44:33 -07:00
|
|
|
log.Error(err)
|
|
|
|
}
|
|
|
|
|
2016-04-14 21:58:07 -07:00
|
|
|
if err := hostname.SetHostnameFromCloudConfig(cfg); err != nil {
|
|
|
|
log.Error(err)
|
|
|
|
}
|
|
|
|
|
2016-04-15 10:38:31 -07:00
|
|
|
userSetHostname := cfg.Hostname != ""
|
2017-05-19 21:41:09 +10:00
|
|
|
if err := netconf.ApplyNetworkConfigs(&cfg.Rancher.Network, userSetHostname, userSetDNS); err != nil {
|
2016-04-14 21:58:07 -07:00
|
|
|
log.Error(err)
|
|
|
|
}
|
|
|
|
|
2017-03-30 12:29:32 +00:00
|
|
|
log.Infof("Apply Network Config SyncHostname")
|
2016-04-14 21:58:07 -07:00
|
|
|
if err := hostname.SyncHostname(); err != nil {
|
|
|
|
log.Error(err)
|
2015-12-10 20:56:15 +05:00
|
|
|
}
|
2015-03-02 15:03:21 -08:00
|
|
|
}
|