mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-28 11:11:33 +08:00
Merge pull request #797 from gravitl/feature_v0.11.0_cleanup_env
adding random comms network name logic
This commit is contained in:
@@ -53,15 +53,12 @@ type ServerConfig struct {
|
|||||||
MessageQueueBackend string `yaml:"messagequeuebackend"`
|
MessageQueueBackend string `yaml:"messagequeuebackend"`
|
||||||
ClientMode string `yaml:"clientmode"`
|
ClientMode string `yaml:"clientmode"`
|
||||||
DNSMode string `yaml:"dnsmode"`
|
DNSMode string `yaml:"dnsmode"`
|
||||||
SplitDNS string `yaml:"splitdns"`
|
|
||||||
DisableRemoteIPCheck string `yaml:"disableremoteipcheck"`
|
DisableRemoteIPCheck string `yaml:"disableremoteipcheck"`
|
||||||
DisableDefaultNet string `yaml:"disabledefaultnet"`
|
|
||||||
GRPCSSL string `yaml:"grpcssl"`
|
GRPCSSL string `yaml:"grpcssl"`
|
||||||
Version string `yaml:"version"`
|
Version string `yaml:"version"`
|
||||||
SQLConn string `yaml:"sqlconn"`
|
SQLConn string `yaml:"sqlconn"`
|
||||||
Platform string `yaml:"platform"`
|
Platform string `yaml:"platform"`
|
||||||
Database string `yaml:"database"`
|
Database string `yaml:"database"`
|
||||||
CheckinInterval string `yaml:"checkininterval"`
|
|
||||||
DefaultNodeLimit int32 `yaml:"defaultnodelimit"`
|
DefaultNodeLimit int32 `yaml:"defaultnodelimit"`
|
||||||
Verbosity int32 `yaml:"verbosity"`
|
Verbosity int32 `yaml:"verbosity"`
|
||||||
ServerCheckinInterval int64 `yaml:"servercheckininterval"`
|
ServerCheckinInterval int64 `yaml:"servercheckininterval"`
|
||||||
@@ -78,6 +75,7 @@ type ServerConfig struct {
|
|||||||
PortForwardServices string `yaml:"portforwardservices"`
|
PortForwardServices string `yaml:"portforwardservices"`
|
||||||
HostNetwork string `yaml:"hostnetwork"`
|
HostNetwork string `yaml:"hostnetwork"`
|
||||||
CommsCIDR string `yaml:"commscidr"`
|
CommsCIDR string `yaml:"commscidr"`
|
||||||
|
MQPort string `yaml:"mqport"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// SQLConfig - Generic SQL Config
|
// SQLConfig - Generic SQL Config
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import (
|
|||||||
"github.com/gravitl/netmaker/database"
|
"github.com/gravitl/netmaker/database"
|
||||||
"github.com/gravitl/netmaker/logic"
|
"github.com/gravitl/netmaker/logic"
|
||||||
"github.com/gravitl/netmaker/models"
|
"github.com/gravitl/netmaker/models"
|
||||||
|
"github.com/gravitl/netmaker/serverctl"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -300,4 +301,5 @@ func createNet() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
logic.CreateNetwork(network)
|
logic.CreateNetwork(network)
|
||||||
}
|
}
|
||||||
|
serverctl.InitializeCommsNetwork()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,12 +49,17 @@ func CreateAccessKey(accesskey models.AccessKey, network models.Network) (models
|
|||||||
|
|
||||||
netID := network.NetID
|
netID := network.NetID
|
||||||
|
|
||||||
|
commsNetID, err := FetchCommsNetID()
|
||||||
|
if err != nil {
|
||||||
|
return models.AccessKey{}, errors.New("could not retrieve comms netid")
|
||||||
|
}
|
||||||
|
|
||||||
var accessToken models.AccessToken
|
var accessToken models.AccessToken
|
||||||
s := servercfg.GetServerConfig()
|
s := servercfg.GetServerConfig()
|
||||||
servervals := models.ServerConfig{
|
servervals := models.ServerConfig{
|
||||||
GRPCConnString: s.GRPCConnString,
|
GRPCConnString: s.GRPCConnString,
|
||||||
GRPCSSL: s.GRPCSSL,
|
GRPCSSL: s.GRPCSSL,
|
||||||
CheckinInterval: s.CheckinInterval,
|
CommsNetwork: commsNetID,
|
||||||
}
|
}
|
||||||
accessToken.ServerConfig = servervals
|
accessToken.ServerConfig = servervals
|
||||||
accessToken.ClientConfig.Network = netID
|
accessToken.ClientConfig.Network = netID
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import (
|
|||||||
"github.com/gravitl/netmaker/database"
|
"github.com/gravitl/netmaker/database"
|
||||||
"github.com/gravitl/netmaker/logger"
|
"github.com/gravitl/netmaker/logger"
|
||||||
"github.com/gravitl/netmaker/models"
|
"github.com/gravitl/netmaker/models"
|
||||||
"github.com/gravitl/netmaker/servercfg"
|
|
||||||
"github.com/txn2/txeh"
|
"github.com/txn2/txeh"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -39,9 +38,12 @@ func SetDNS() error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
/* if something goes wrong with server DNS, check here
|
||||||
|
// commented out bc we were not using IsSplitDNS
|
||||||
if servercfg.IsSplitDNS() {
|
if servercfg.IsSplitDNS() {
|
||||||
err = SetCorefile(corefilestring)
|
err = SetCorefile(corefilestring)
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -72,3 +72,32 @@ func StoreJWTSecret(privateKey string) error {
|
|||||||
}
|
}
|
||||||
return database.Insert("nm-jwt-secret", string(data), database.SERVERCONF_TABLE_NAME)
|
return database.Insert("nm-jwt-secret", string(data), database.SERVERCONF_TABLE_NAME)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FetchCommsNetID - fetches comms netid from db
|
||||||
|
func FetchCommsNetID() (string, error) {
|
||||||
|
var dbData string
|
||||||
|
var err error
|
||||||
|
var fetchedData = serverData{}
|
||||||
|
dbData, err = database.FetchRecord(database.SERVERCONF_TABLE_NAME, "nm-comms-id")
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
err = json.Unmarshal([]byte(dbData), &fetchedData)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
return fetchedData.PrivateKey, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// StoreCommsNetID - stores server comms network netid if needed
|
||||||
|
func StoreCommsNetID(netid string) error {
|
||||||
|
var newData = serverData{}
|
||||||
|
var err error
|
||||||
|
var data []byte
|
||||||
|
newData.PrivateKey = netid
|
||||||
|
data, err = json.Marshal(&newData)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return database.Insert("nm-comms-id", string(data), database.SERVERCONF_TABLE_NAME)
|
||||||
|
}
|
||||||
|
|||||||
@@ -14,5 +14,5 @@ type ClientConfig struct {
|
|||||||
type ServerConfig struct {
|
type ServerConfig struct {
|
||||||
GRPCConnString string `json:"grpcconn"`
|
GRPCConnString string `json:"grpcconn"`
|
||||||
GRPCSSL string `json:"grpcssl"`
|
GRPCSSL string `json:"grpcssl"`
|
||||||
CheckinInterval string `json:"checkininterval"`
|
CommsNetwork string `json:"commsnetwork"`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package command
|
package command
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"strconv"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/gravitl/netmaker/netclient/config"
|
"github.com/gravitl/netmaker/netclient/config"
|
||||||
@@ -90,23 +89,6 @@ func Join(cfg config.ClientConfig, privateKey string) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func getWindowsInterval() int {
|
|
||||||
interval := 15
|
|
||||||
networks, err := ncutils.GetSystemNetworks()
|
|
||||||
if err != nil {
|
|
||||||
return interval
|
|
||||||
}
|
|
||||||
cfg, err := config.ReadConfig(networks[0])
|
|
||||||
if err != nil {
|
|
||||||
return interval
|
|
||||||
}
|
|
||||||
netint, err := strconv.Atoi(cfg.Server.CheckinInterval)
|
|
||||||
if err == nil && netint != 0 {
|
|
||||||
interval = netint
|
|
||||||
}
|
|
||||||
return interval
|
|
||||||
}
|
|
||||||
|
|
||||||
// Leave - runs the leave command from cli
|
// Leave - runs the leave command from cli
|
||||||
func Leave(cfg config.ClientConfig) error {
|
func Leave(cfg config.ClientConfig) error {
|
||||||
err := functions.LeaveNetwork(cfg.Network)
|
err := functions.LeaveNetwork(cfg.Network)
|
||||||
|
|||||||
@@ -15,12 +15,6 @@ import (
|
|||||||
"gopkg.in/yaml.v3"
|
"gopkg.in/yaml.v3"
|
||||||
)
|
)
|
||||||
|
|
||||||
// GlobalConfig - struct for handling IntClients currently
|
|
||||||
type GlobalConfig struct {
|
|
||||||
GRPCWireGuard string `yaml:"grpcwg"`
|
|
||||||
Client models.IntClient
|
|
||||||
}
|
|
||||||
|
|
||||||
// ClientConfig - struct for dealing with client configuration
|
// ClientConfig - struct for dealing with client configuration
|
||||||
type ClientConfig struct {
|
type ClientConfig struct {
|
||||||
Server ServerConfig `yaml:"server"`
|
Server ServerConfig `yaml:"server"`
|
||||||
@@ -38,8 +32,6 @@ type ServerConfig struct {
|
|||||||
GRPCAddress string `yaml:"grpcaddress"`
|
GRPCAddress string `yaml:"grpcaddress"`
|
||||||
AccessKey string `yaml:"accesskey"`
|
AccessKey string `yaml:"accesskey"`
|
||||||
GRPCSSL string `yaml:"grpcssl"`
|
GRPCSSL string `yaml:"grpcssl"`
|
||||||
GRPCWireGuard string `yaml:"grpcwg"`
|
|
||||||
CheckinInterval string `yaml:"checkininterval"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write - writes the config of a client to disk
|
// Write - writes the config of a client to disk
|
||||||
@@ -183,7 +175,6 @@ func GetCLIConfig(c *cli.Context) (ClientConfig, string, error) {
|
|||||||
cfg.Server.AccessKey = accesstoken.ClientConfig.Key
|
cfg.Server.AccessKey = accesstoken.ClientConfig.Key
|
||||||
cfg.Node.LocalRange = accesstoken.ClientConfig.LocalRange
|
cfg.Node.LocalRange = accesstoken.ClientConfig.LocalRange
|
||||||
cfg.Server.GRPCSSL = accesstoken.ServerConfig.GRPCSSL
|
cfg.Server.GRPCSSL = accesstoken.ServerConfig.GRPCSSL
|
||||||
cfg.Server.CheckinInterval = accesstoken.ServerConfig.CheckinInterval
|
|
||||||
if c.String("grpcserver") != "" {
|
if c.String("grpcserver") != "" {
|
||||||
cfg.Server.GRPCAddress = c.String("grpcserver")
|
cfg.Server.GRPCAddress = c.String("grpcserver")
|
||||||
}
|
}
|
||||||
@@ -203,12 +194,6 @@ func GetCLIConfig(c *cli.Context) (ClientConfig, string, error) {
|
|||||||
if c.String("corednsaddr") != "" {
|
if c.String("corednsaddr") != "" {
|
||||||
cfg.Server.CoreDNSAddr = c.String("corednsaddr")
|
cfg.Server.CoreDNSAddr = c.String("corednsaddr")
|
||||||
}
|
}
|
||||||
if c.String("grpcwg") != "" {
|
|
||||||
cfg.Server.GRPCWireGuard = c.String("grpcwg")
|
|
||||||
}
|
|
||||||
if c.String("checkininterval") != "" {
|
|
||||||
cfg.Server.CheckinInterval = c.String("checkininterval")
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
cfg.Server.GRPCAddress = c.String("grpcserver")
|
cfg.Server.GRPCAddress = c.String("grpcserver")
|
||||||
@@ -216,10 +201,8 @@ func GetCLIConfig(c *cli.Context) (ClientConfig, string, error) {
|
|||||||
cfg.Network = c.String("network")
|
cfg.Network = c.String("network")
|
||||||
cfg.Node.Network = c.String("network")
|
cfg.Node.Network = c.String("network")
|
||||||
cfg.Node.LocalRange = c.String("localrange")
|
cfg.Node.LocalRange = c.String("localrange")
|
||||||
cfg.Server.GRPCWireGuard = c.String("grpcwg")
|
|
||||||
cfg.Server.GRPCSSL = c.String("grpcssl")
|
cfg.Server.GRPCSSL = c.String("grpcssl")
|
||||||
cfg.Server.CoreDNSAddr = c.String("corednsaddr")
|
cfg.Server.CoreDNSAddr = c.String("corednsaddr")
|
||||||
cfg.Server.CheckinInterval = c.String("checkininterval")
|
|
||||||
}
|
}
|
||||||
cfg.Node.Name = c.String("name")
|
cfg.Node.Name = c.String("name")
|
||||||
cfg.Node.Interface = c.String("interface")
|
cfg.Node.Interface = c.String("interface")
|
||||||
@@ -246,10 +229,6 @@ func GetCLIConfig(c *cli.Context) (ClientConfig, string, error) {
|
|||||||
cfg.Node.UDPHolePunch = c.String("udpholepunch")
|
cfg.Node.UDPHolePunch = c.String("udpholepunch")
|
||||||
cfg.Node.MTU = int32(c.Int("mtu"))
|
cfg.Node.MTU = int32(c.Int("mtu"))
|
||||||
|
|
||||||
if cfg.Server.CheckinInterval == "" {
|
|
||||||
cfg.Server.CheckinInterval = "15"
|
|
||||||
}
|
|
||||||
|
|
||||||
return cfg, privateKey, nil
|
return cfg, privateKey, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -13,18 +13,13 @@ func InstallDaemon(cfg config.ClientConfig) error {
|
|||||||
os := runtime.GOOS
|
os := runtime.GOOS
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
interval := "15"
|
|
||||||
if cfg.Server.CheckinInterval != "" {
|
|
||||||
interval = cfg.Server.CheckinInterval
|
|
||||||
}
|
|
||||||
|
|
||||||
switch os {
|
switch os {
|
||||||
case "windows":
|
case "windows":
|
||||||
err = SetupWindowsDaemon()
|
err = SetupWindowsDaemon()
|
||||||
case "darwin":
|
case "darwin":
|
||||||
err = SetupMacDaemon(interval)
|
err = SetupMacDaemon()
|
||||||
case "linux":
|
case "linux":
|
||||||
err = SetupSystemDDaemon(interval)
|
err = SetupSystemDDaemon()
|
||||||
case "freebsd":
|
case "freebsd":
|
||||||
err = SetupFreebsdDaemon()
|
err = SetupFreebsdDaemon()
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package daemon
|
package daemon
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
@@ -14,7 +13,7 @@ const MAC_SERVICE_NAME = "com.gravitl.netclient"
|
|||||||
const MAC_EXEC_DIR = "/usr/local/bin/"
|
const MAC_EXEC_DIR = "/usr/local/bin/"
|
||||||
|
|
||||||
// SetupMacDaemon - Creates a daemon service from the netclient under LaunchAgents for MacOS
|
// SetupMacDaemon - Creates a daemon service from the netclient under LaunchAgents for MacOS
|
||||||
func SetupMacDaemon(interval string) error {
|
func SetupMacDaemon() error {
|
||||||
|
|
||||||
dir, err := filepath.Abs(filepath.Dir(os.Args[0]))
|
dir, err := filepath.Abs(filepath.Dir(os.Args[0]))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -34,7 +33,7 @@ func SetupMacDaemon(interval string) error {
|
|||||||
if os.IsNotExist(errN) {
|
if os.IsNotExist(errN) {
|
||||||
os.Mkdir("~/Library/LaunchAgents", 0755)
|
os.Mkdir("~/Library/LaunchAgents", 0755)
|
||||||
}
|
}
|
||||||
err = CreateMacService(MAC_SERVICE_NAME, interval)
|
err = CreateMacService(MAC_SERVICE_NAME)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -69,7 +68,7 @@ func StopLaunchD() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// CreateMacService - Creates the mac service file for LaunchDaemons
|
// CreateMacService - Creates the mac service file for LaunchDaemons
|
||||||
func CreateMacService(servicename string, interval string) error {
|
func CreateMacService(servicename string) error {
|
||||||
_, err := os.Stat("/Library/LaunchDaemons")
|
_, err := os.Stat("/Library/LaunchDaemons")
|
||||||
if os.IsNotExist(err) {
|
if os.IsNotExist(err) {
|
||||||
os.Mkdir("/Library/LaunchDaemons", 0755)
|
os.Mkdir("/Library/LaunchDaemons", 0755)
|
||||||
@@ -77,7 +76,7 @@ func CreateMacService(servicename string, interval string) error {
|
|||||||
log.Println("couldnt find or create /Library/LaunchDaemons")
|
log.Println("couldnt find or create /Library/LaunchDaemons")
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
daemonstring := MacDaemonString(interval)
|
daemonstring := MacDaemonString()
|
||||||
daemonbytes := []byte(daemonstring)
|
daemonbytes := []byte(daemonstring)
|
||||||
|
|
||||||
if !ncutils.FileExists("/Library/LaunchDaemons/com.gravitl.netclient.plist") {
|
if !ncutils.FileExists("/Library/LaunchDaemons/com.gravitl.netclient.plist") {
|
||||||
@@ -87,8 +86,8 @@ func CreateMacService(servicename string, interval string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// MacDaemonString - the file contents for the mac netclient daemon service (launchdaemon)
|
// MacDaemonString - the file contents for the mac netclient daemon service (launchdaemon)
|
||||||
func MacDaemonString(interval string) string {
|
func MacDaemonString() string {
|
||||||
return fmt.Sprintf(`<?xml version='1.0' encoding='UTF-8'?>
|
return `<?xml version='1.0' encoding='UTF-8'?>
|
||||||
<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\" >
|
<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\" >
|
||||||
<plist version='1.0'>
|
<plist version='1.0'>
|
||||||
<dict>
|
<dict>
|
||||||
@@ -101,8 +100,6 @@ func MacDaemonString(interval string) string {
|
|||||||
<key>StandardOutPath</key><string>/etc/netclient/com.gravitl.netclient.log</string>
|
<key>StandardOutPath</key><string>/etc/netclient/com.gravitl.netclient.log</string>
|
||||||
<key>StandardErrorPath</key><string>/etc/netclient/com.gravitl.netclient.log</string>
|
<key>StandardErrorPath</key><string>/etc/netclient/com.gravitl.netclient.log</string>
|
||||||
<key>AbandonProcessGroup</key><true/>
|
<key>AbandonProcessGroup</key><true/>
|
||||||
<key>StartInterval</key>
|
|
||||||
<integer>%s</integer>
|
|
||||||
<key>EnvironmentVariables</key>
|
<key>EnvironmentVariables</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>PATH</key>
|
<key>PATH</key>
|
||||||
@@ -110,7 +107,7 @@ func MacDaemonString(interval string) string {
|
|||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
`, interval)
|
`
|
||||||
}
|
}
|
||||||
|
|
||||||
// MacTemplateData - struct to represent the mac service
|
// MacTemplateData - struct to represent the mac service
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import (
|
|||||||
const EXEC_DIR = "/sbin/"
|
const EXEC_DIR = "/sbin/"
|
||||||
|
|
||||||
// SetupSystemDDaemon - sets system daemon for supported machines
|
// SetupSystemDDaemon - sets system daemon for supported machines
|
||||||
func SetupSystemDDaemon(interval string) error {
|
func SetupSystemDDaemon() error {
|
||||||
|
|
||||||
if ncutils.IsWindows() {
|
if ncutils.IsWindows() {
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -31,7 +31,8 @@ func GetServerConfig() config.ServerConfig {
|
|||||||
cfg.CoreDNSAddr = GetCoreDNSAddr()
|
cfg.CoreDNSAddr = GetCoreDNSAddr()
|
||||||
cfg.APIHost = GetAPIHost()
|
cfg.APIHost = GetAPIHost()
|
||||||
cfg.APIPort = GetAPIPort()
|
cfg.APIPort = GetAPIPort()
|
||||||
cfg.GRPCConnString = GetGRPCConnString()
|
cfg.APIPort = GetAPIPort()
|
||||||
|
cfg.MQPort = GetMQPort()
|
||||||
cfg.GRPCHost = GetGRPCHost()
|
cfg.GRPCHost = GetGRPCHost()
|
||||||
cfg.GRPCPort = GetGRPCPort()
|
cfg.GRPCPort = GetGRPCPort()
|
||||||
cfg.MasterKey = "(hidden)"
|
cfg.MasterKey = "(hidden)"
|
||||||
@@ -39,8 +40,7 @@ func GetServerConfig() config.ServerConfig {
|
|||||||
cfg.AllowedOrigin = GetAllowedOrigin()
|
cfg.AllowedOrigin = GetAllowedOrigin()
|
||||||
cfg.RestBackend = "off"
|
cfg.RestBackend = "off"
|
||||||
cfg.NodeID = GetNodeID()
|
cfg.NodeID = GetNodeID()
|
||||||
cfg.CheckinInterval = GetCheckinInterval()
|
cfg.MQPort = GetMQPort()
|
||||||
cfg.ServerCheckinInterval = GetServerCheckinInterval()
|
|
||||||
if IsRestBackend() {
|
if IsRestBackend() {
|
||||||
cfg.RestBackend = "on"
|
cfg.RestBackend = "on"
|
||||||
}
|
}
|
||||||
@@ -68,10 +68,6 @@ func GetServerConfig() config.ServerConfig {
|
|||||||
if DisableRemoteIPCheck() {
|
if DisableRemoteIPCheck() {
|
||||||
cfg.DisableRemoteIPCheck = "on"
|
cfg.DisableRemoteIPCheck = "on"
|
||||||
}
|
}
|
||||||
cfg.DisableDefaultNet = "off"
|
|
||||||
if DisableDefaultNet() {
|
|
||||||
cfg.DisableRemoteIPCheck = "on"
|
|
||||||
}
|
|
||||||
cfg.Database = GetDB()
|
cfg.Database = GetDB()
|
||||||
cfg.Platform = GetPlatform()
|
cfg.Platform = GetPlatform()
|
||||||
cfg.Version = GetVersion()
|
cfg.Version = GetVersion()
|
||||||
@@ -90,6 +86,7 @@ func GetServerConfig() config.ServerConfig {
|
|||||||
cfg.Debug = GetDebug()
|
cfg.Debug = GetDebug()
|
||||||
cfg.Telemetry = Telemetry()
|
cfg.Telemetry = Telemetry()
|
||||||
cfg.ManageIPTables = ManageIPTables()
|
cfg.ManageIPTables = ManageIPTables()
|
||||||
|
cfg.CommsCIDR = GetCommsCIDR()
|
||||||
services := strings.Join(GetPortForwardServiceList(), ",")
|
services := strings.Join(GetPortForwardServiceList(), ",")
|
||||||
cfg.PortForwardServices = services
|
cfg.PortForwardServices = services
|
||||||
|
|
||||||
@@ -177,17 +174,6 @@ func GetAPIPort() string {
|
|||||||
return apiport
|
return apiport
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetCheckinInterval - get check in interval for nodes
|
|
||||||
func GetCheckinInterval() string {
|
|
||||||
seconds := "15"
|
|
||||||
if os.Getenv("CHECKIN_INTERVAL") != "" {
|
|
||||||
seconds = os.Getenv("CHECKIN_INTERVAL")
|
|
||||||
} else if config.Config.Server.CheckinInterval != "" {
|
|
||||||
seconds = config.Config.Server.CheckinInterval
|
|
||||||
}
|
|
||||||
return seconds
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetDefaultNodeLimit - get node limit if one is set
|
// GetDefaultNodeLimit - get node limit if one is set
|
||||||
func GetDefaultNodeLimit() int32 {
|
func GetDefaultNodeLimit() int32 {
|
||||||
var limit int32
|
var limit int32
|
||||||
@@ -254,6 +240,17 @@ func GetGRPCPort() string {
|
|||||||
return grpcport
|
return grpcport
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetMQPort - gets the mq port
|
||||||
|
func GetMQPort() string {
|
||||||
|
mqport := "1883"
|
||||||
|
if os.Getenv("MQ_PORT") != "" {
|
||||||
|
mqport = os.Getenv("MQ_PORT")
|
||||||
|
} else if config.Config.Server.MQPort != "" {
|
||||||
|
mqport = config.Config.Server.MQPort
|
||||||
|
}
|
||||||
|
return mqport
|
||||||
|
}
|
||||||
|
|
||||||
// GetGRPCPort - gets the grpc port
|
// GetGRPCPort - gets the grpc port
|
||||||
func GetCommsCIDR() string {
|
func GetCommsCIDR() string {
|
||||||
netrange := "172.242.0.0/16"
|
netrange := "172.242.0.0/16"
|
||||||
@@ -455,21 +452,6 @@ func DisableRemoteIPCheck() bool {
|
|||||||
return disabled
|
return disabled
|
||||||
}
|
}
|
||||||
|
|
||||||
// DisableDefaultNet - disable default net
|
|
||||||
func DisableDefaultNet() bool {
|
|
||||||
disabled := false
|
|
||||||
if os.Getenv("DISABLE_DEFAULT_NET") != "" {
|
|
||||||
if os.Getenv("DISABLE_DEFAULT_NET") == "on" {
|
|
||||||
disabled = true
|
|
||||||
}
|
|
||||||
} else if config.Config.Server.DisableDefaultNet != "" {
|
|
||||||
if config.Config.Server.DisableDefaultNet == "on" {
|
|
||||||
disabled = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return disabled
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetPublicIP - gets public ip
|
// GetPublicIP - gets public ip
|
||||||
func GetPublicIP() (string, error) {
|
func GetPublicIP() (string, error) {
|
||||||
|
|
||||||
@@ -533,18 +515,7 @@ func GetSQLConn() string {
|
|||||||
return sqlconn
|
return sqlconn
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsSplitDNS - checks if split dns is on
|
// IsHostNetwork - checks if running on host network
|
||||||
func IsSplitDNS() bool {
|
|
||||||
issplit := false
|
|
||||||
if os.Getenv("IS_SPLIT_DNS") == "yes" {
|
|
||||||
issplit = true
|
|
||||||
} else if config.Config.Server.SplitDNS == "yes" {
|
|
||||||
issplit = true
|
|
||||||
}
|
|
||||||
return issplit
|
|
||||||
}
|
|
||||||
|
|
||||||
// IsSplitDNS - checks if split dns is on
|
|
||||||
func IsHostNetwork() bool {
|
func IsHostNetwork() bool {
|
||||||
ishost := false
|
ishost := false
|
||||||
if os.Getenv("HOST_NETWORK") == "on" {
|
if os.Getenv("HOST_NETWORK") == "on" {
|
||||||
|
|||||||
@@ -14,17 +14,19 @@ import (
|
|||||||
"github.com/gravitl/netmaker/servercfg"
|
"github.com/gravitl/netmaker/servercfg"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// COMMS_NETID - name of the comms network
|
||||||
|
var COMMS_NETID string
|
||||||
|
|
||||||
const (
|
const (
|
||||||
// NETMAKER_BINARY_NAME - name of netmaker binary
|
// NETMAKER_BINARY_NAME - name of netmaker binary
|
||||||
NETMAKER_BINARY_NAME = "netmaker"
|
NETMAKER_BINARY_NAME = "netmaker"
|
||||||
|
|
||||||
// COMMS_NETID - name of comms net
|
|
||||||
COMMS_NETID = "n37m8k3r"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// InitializeCommsNetwork - Check if comms network exists (for MQ, DNS, SSH traffic), if not, create
|
// InitializeCommsNetwork - Check if comms network exists (for MQ, DNS, SSH traffic), if not, create
|
||||||
func InitializeCommsNetwork() error {
|
func InitializeCommsNetwork() error {
|
||||||
|
|
||||||
|
setCommsID()
|
||||||
|
|
||||||
_, err := logic.GetNetwork(COMMS_NETID)
|
_, err := logic.GetNetwork(COMMS_NETID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Log(1, "comms net does not exist, creating")
|
logger.Log(1, "comms net does not exist, creating")
|
||||||
@@ -42,6 +44,20 @@ func InitializeCommsNetwork() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetJWTSecret - sets the jwt secret on server startup
|
||||||
|
func setCommsID() {
|
||||||
|
currentid, idErr := logic.FetchCommsNetID()
|
||||||
|
if idErr != nil {
|
||||||
|
commsid := logic.RandomString(8)
|
||||||
|
if err := logic.StoreCommsNetID(commsid); err != nil {
|
||||||
|
logger.FatalLog("something went wrong when configuring comms id")
|
||||||
|
}
|
||||||
|
COMMS_NETID = commsid
|
||||||
|
return
|
||||||
|
}
|
||||||
|
COMMS_NETID = currentid
|
||||||
|
}
|
||||||
|
|
||||||
// InitServerNetclient - intializes the server netclient
|
// InitServerNetclient - intializes the server netclient
|
||||||
// 1. Check if config directory exists, if not attempt to make
|
// 1. Check if config directory exists, if not attempt to make
|
||||||
// 2. Check current networks and run pull to get interface up to date in case of restart
|
// 2. Check current networks and run pull to get interface up to date in case of restart
|
||||||
|
|||||||
Reference in New Issue
Block a user