1
0
mirror of https://github.com/rancher/os.git synced 2025-06-26 06:51:40 +00:00
os/cmd/network/network.go

83 lines
1.7 KiB
Go
Raw Normal View History

2015-03-02 23:03:21 +00:00
package network
import (
"flag"
2015-03-02 23:03:21 +00:00
"os"
"golang.org/x/net/context"
2015-03-02 23:03:21 +00:00
log "github.com/Sirupsen/logrus"
"github.com/docker/libnetwork/resolvconf"
"github.com/rancher/os/config"
"github.com/rancher/os/docker"
2016-04-15 04:58:07 +00:00
"github.com/rancher/os/hostname"
"github.com/rancher/os/netconf"
2015-03-02 23:03:21 +00:00
)
var (
stopNetworkPre bool
flags *flag.FlagSet
)
func init() {
flags = flag.NewFlagSet(os.Args[0], flag.ContinueOnError)
flags.BoolVar(&stopNetworkPre, "stop-network-pre", false, "")
}
2015-03-02 23:03:21 +00:00
func Main() {
flags.Parse(os.Args[1:])
log.Infof("Running network: stop-network-pre=%v", stopNetworkPre)
if stopNetworkPre {
client, err := docker.NewSystemClient()
if err != nil {
log.Error(err)
}
err = client.ContainerStop(context.Background(), "network-pre", 10)
if err != nil {
log.Error(err)
}
_, err = client.ContainerWait(context.Background(), "network-pre")
if err != nil {
log.Error(err)
}
}
2016-06-02 01:41:55 +00:00
cfg := config.LoadConfig()
2016-04-15 17:38:31 +00: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 17:38:31 +00:00
}
if _, err := resolvconf.Build("/etc/resolv.conf", nameservers, search, nil); err != nil {
log.Error(err)
}
2016-04-15 04:58:07 +00:00
if err := hostname.SetHostnameFromCloudConfig(cfg); err != nil {
log.Error(err)
}
2015-07-29 07:45:06 +00:00
if err := netconf.ApplyNetworkConfigs(&cfg.Rancher.Network); err != nil {
log.Error(err)
}
2016-04-15 17:38:31 +00:00
userSetHostname := cfg.Hostname != ""
if err := netconf.RunDhcp(&cfg.Rancher.Network, !userSetHostname, !userSetDns); err != nil {
2016-04-15 04:58:07 +00:00
log.Error(err)
}
if err := hostname.SyncHostname(); err != nil {
log.Error(err)
2015-12-10 15:56:15 +00:00
}
select {}
2015-03-02 23:03:21 +00:00
}