func (o *AllInOneOptions) Complete() error { if o.ConfigDir.Provided() { o.MasterOptions.MasterArgs.ConfigDir.Set(path.Join(o.ConfigDir.Value(), "master")) o.NodeArgs.ConfigDir.Set(path.Join(o.ConfigDir.Value(), admin.DefaultNodeDir(o.NodeArgs.NodeName))) } else { o.ConfigDir.Default("openshift.local.config") o.MasterOptions.MasterArgs.ConfigDir.Default(path.Join(o.ConfigDir.Value(), "master")) o.NodeArgs.ConfigDir.Default(path.Join(o.ConfigDir.Value(), admin.DefaultNodeDir(o.NodeArgs.NodeName))) } o.MasterOptions.MasterArgs.NetworkArgs.NetworkPluginName = o.NodeArgs.NetworkPluginName o.MasterOptions.MasterArgs.NetworkArgs.ServiceNetworkCIDR = o.ServiceNetworkCIDR masterAddr, err := o.MasterOptions.MasterArgs.GetMasterAddress() if err != nil { return err } // in the all-in-one, default kubernetes URL to the master's address o.NodeArgs.DefaultKubernetesURL = masterAddr o.NodeArgs.NodeName = strings.ToLower(o.NodeArgs.NodeName) o.NodeArgs.MasterCertDir = o.MasterOptions.MasterArgs.ConfigDir.Value() // in the all-in-one, default ClusterDNS to the master's address if host, _, err := net.SplitHostPort(masterAddr.Host); err == nil { if ip := net.ParseIP(host); ip != nil { o.NodeArgs.ClusterDNS = ip } } return nil }
func (o *AllInOneOptions) Complete() error { if o.ConfigDir.Provided() { o.MasterOptions.MasterArgs.ConfigDir.Set(path.Join(o.ConfigDir.Value(), "master")) o.NodeArgs.ConfigDir.Set(path.Join(o.ConfigDir.Value(), admin.DefaultNodeDir(o.NodeArgs.NodeName))) } else { o.ConfigDir.Default("openshift.local.config") o.MasterOptions.MasterArgs.ConfigDir.Default(path.Join(o.ConfigDir.Value(), "master")) o.NodeArgs.ConfigDir.Default(path.Join(o.ConfigDir.Value(), admin.DefaultNodeDir(o.NodeArgs.NodeName))) } o.MasterOptions.MasterArgs.NetworkArgs.NetworkPluginName = o.NodeArgs.NetworkPluginName o.MasterOptions.MasterArgs.NetworkArgs.ServiceNetworkCIDR = o.ServiceNetworkCIDR masterAddr, err := o.MasterOptions.MasterArgs.GetMasterAddress() if err != nil { return err } // in the all-in-one, default kubernetes URL to the master's address o.NodeArgs.DefaultKubernetesURL = masterAddr o.NodeArgs.NodeName = strings.ToLower(o.NodeArgs.NodeName) o.NodeArgs.MasterCertDir = o.MasterOptions.MasterArgs.ConfigDir.Value() // For backward compatibility of DNS queries to the master service IP, enabling node DNS // continues to start the master DNS, but the container DNS server will be the node's. // However, if the user has provided an override DNSAddr, we need to honor the value if // the port is not 53 and we do that by disabling node DNS. if !o.IsRunFromConfig() && o.NodeArgs.Components.Enabled(ComponentDNS) { dnsAddr := &o.MasterOptions.MasterArgs.DNSBindAddr if dnsAddr.Provided { if dnsAddr.Port == 53 { // the user has set the DNS port to 53, which is the effective default (node on 53, master on 8053) dnsAddr.Port = 8053 dnsAddr.URL.Host = net.JoinHostPort(dnsAddr.Host, strconv.Itoa(dnsAddr.Port)) } else { // if the user set the DNS port to anything but 53, disable node DNS since ClusterDNS (and glibc) // can't look up DNS on anything other than 53, so we'll continue to use the proxy. o.NodeArgs.Components.Disable(ComponentDNS) glog.V(2).Infof("Node DNS may not be used with a non-standard DNS port %d - disabled node DNS", dnsAddr.Port) } } // if node DNS is still enabled, then default the node cluster DNS to a reachable master address if o.NodeArgs.Components.Enabled(ComponentDNS) && o.NodeArgs.ClusterDNS == nil { if dnsIP, err := findLocalIPForDNS(o.MasterOptions.MasterArgs); err == nil { o.NodeArgs.ClusterDNS = dnsIP } else { glog.V(2).Infof("Unable to find a local address to report as the node DNS - not using node DNS: %v", err) } } } return nil }
func DefaultAllInOneOptions() (*configapi.MasterConfig, *configapi.NodeConfig, error) { startOptions := start.AllInOneOptions{MasterOptions: &start.MasterOptions{}, NodeArgs: &start.NodeArgs{}} startOptions.MasterOptions.MasterArgs, startOptions.NodeArgs, _, _, _ = setupStartOptions() startOptions.MasterOptions.MasterArgs.NodeList = nil startOptions.NodeArgs.AllowDisabledDocker = true startOptions.ServiceNetworkCIDR = start.NewDefaultNetworkArgs().ServiceNetworkCIDR startOptions.Complete() startOptions.MasterOptions.MasterArgs.ConfigDir.Default(path.Join(util.GetBaseDir(), "openshift.local.config", "master")) startOptions.NodeArgs.ConfigDir.Default(path.Join(util.GetBaseDir(), "openshift.local.config", admin.DefaultNodeDir(startOptions.NodeArgs.NodeName))) startOptions.NodeArgs.MasterCertDir = startOptions.MasterOptions.MasterArgs.ConfigDir.Value() if err := CreateMasterCerts(startOptions.MasterOptions.MasterArgs); err != nil { return nil, nil, err } if err := CreateBootstrapPolicy(startOptions.MasterOptions.MasterArgs); err != nil { return nil, nil, err } if err := CreateNodeCerts(startOptions.NodeArgs); err != nil { return nil, nil, err } masterOptions, err := startOptions.MasterOptions.MasterArgs.BuildSerializeableMasterConfig() if err != nil { return nil, nil, err } nodeOptions, err := startOptions.NodeArgs.BuildSerializeableNodeConfig() if err != nil { return nil, nil, err } return masterOptions, nodeOptions, nil }
func DefaultAllInOneOptions() (*configapi.MasterConfig, *configapi.NodeConfig, *utilflags.ComponentFlag, error) { startOptions := start.AllInOneOptions{MasterOptions: &start.MasterOptions{}, NodeArgs: &start.NodeArgs{}} startOptions.MasterOptions.MasterArgs, startOptions.NodeArgs, _, _, _ = setupStartOptions(false, false) startOptions.NodeArgs.AllowDisabledDocker = true startOptions.NodeArgs.Components.Disable("plugins", "proxy", "dns") startOptions.ServiceNetworkCIDR = start.NewDefaultNetworkArgs().ServiceNetworkCIDR startOptions.Complete() startOptions.MasterOptions.MasterArgs.ConfigDir.Default(path.Join(util.GetBaseDir(), "openshift.local.config", "master")) startOptions.NodeArgs.ConfigDir.Default(path.Join(util.GetBaseDir(), "openshift.local.config", admin.DefaultNodeDir(startOptions.NodeArgs.NodeName))) startOptions.NodeArgs.MasterCertDir = startOptions.MasterOptions.MasterArgs.ConfigDir.Value() if err := CreateMasterCerts(startOptions.MasterOptions.MasterArgs); err != nil { return nil, nil, nil, err } if err := CreateBootstrapPolicy(startOptions.MasterOptions.MasterArgs); err != nil { return nil, nil, nil, err } if err := CreateNodeCerts(startOptions.NodeArgs, startOptions.MasterOptions.MasterArgs.MasterAddr.String()); err != nil { return nil, nil, nil, err } masterOptions, err := startOptions.MasterOptions.MasterArgs.BuildSerializeableMasterConfig() if err != nil { return nil, nil, nil, err } if fn := startOptions.MasterOptions.MasterArgs.OverrideConfig; fn != nil { if err := fn(masterOptions); err != nil { return nil, nil, nil, err } } nodeOptions, err := startOptions.NodeArgs.BuildSerializeableNodeConfig() if err != nil { return nil, nil, nil, err } return masterOptions, nodeOptions, startOptions.NodeArgs.Components, nil }