diff --git a/config/config.go b/config/config.go index 3872ef82..7ca87fe7 100644 --- a/config/config.go +++ b/config/config.go @@ -66,7 +66,6 @@ type ServerConfig struct { ManageIPTables string `yaml:"manageiptables"` PortForwardServices string `yaml:"portforwardservices"` HostNetwork string `yaml:"hostnetwork"` - CommsCIDR string `yaml:"commscidr"` MQPort string `yaml:"mqport"` Server string `yaml:"server"` } diff --git a/controllers/network.go b/controllers/network.go index d72104f3..44405e95 100644 --- a/controllers/network.go +++ b/controllers/network.go @@ -3,10 +3,8 @@ package controller import ( "encoding/json" "errors" - "fmt" "net/http" "strings" - "time" "github.com/gorilla/mux" "github.com/gravitl/netmaker/database" @@ -16,7 +14,6 @@ import ( "github.com/gravitl/netmaker/models" "github.com/gravitl/netmaker/mq" "github.com/gravitl/netmaker/servercfg" - "github.com/gravitl/netmaker/serverctl" ) // ALL_NETWORK_ACCESS - represents all networks @@ -85,10 +82,6 @@ func getNetwork(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") var params = mux.Vars(r) netname := params["networkname"] - if isCommsEdit(w, r, netname) { - return - } - network, err := logic.GetNetwork(netname) if err != nil { returnErrorResponse(w, r, formatError(err, "internal")) @@ -106,10 +99,6 @@ func keyUpdate(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") var params = mux.Vars(r) netname := params["networkname"] - if isCommsEdit(w, r, netname) { - return - } - network, err := logic.KeyUpdate(netname) if err != nil { returnErrorResponse(w, r, formatError(err, "internal")) @@ -296,10 +285,6 @@ func deleteNetwork(w http.ResponseWriter, r *http.Request) { var params = mux.Vars(r) network := params["networkname"] - if isCommsEdit(w, r, network) { - return - } - err := logic.DeleteNetwork(network) if err != nil { errtype := "badrequest" @@ -334,8 +319,7 @@ func createNetwork(w http.ResponseWriter, r *http.Request) { } if servercfg.IsClientMode() != "off" { - var node models.Node - node, err = logic.ServerJoin(&network) + _, err := logic.ServerJoin(&network) if err != nil { logic.DeleteNetwork(network.NetID) if err == nil { @@ -344,7 +328,6 @@ func createNetwork(w http.ResponseWriter, r *http.Request) { returnErrorResponse(w, r, formatError(err, "internal")) return } - getServerAddrs(&node) } logger.Log(1, r.Header.Get("user"), "created network", network.NetID) @@ -359,9 +342,6 @@ func createAccessKey(w http.ResponseWriter, r *http.Request) { var accesskey models.AccessKey //start here netname := params["networkname"] - if isCommsEdit(w, r, netname) { - return - } network, err := logic.GetParentNetwork(netname) if err != nil { returnErrorResponse(w, r, formatError(err, "internal")) @@ -414,41 +394,3 @@ func deleteAccessKey(w http.ResponseWriter, r *http.Request) { logger.Log(1, r.Header.Get("user"), "deleted access key", keyname, "on network,", netname) w.WriteHeader(http.StatusOK) } - -func isCommsEdit(w http.ResponseWriter, r *http.Request, netname string) bool { - if netname == serverctl.COMMS_NETID { - returnErrorResponse(w, r, formatError(fmt.Errorf("cannot access comms network"), "internal")) - return true - } - return false -} - -func getServerAddrs(node *models.Node) { - serverNodes := logic.GetServerNodes(serverctl.COMMS_NETID) - //pubIP, _ := servercfg.GetPublicIP() - if len(serverNodes) == 0 { - if err := serverctl.SyncServerNetwork(serverctl.COMMS_NETID); err != nil { - return - } - } - - var serverAddrs = make([]models.ServerAddr, 0) - - for _, node := range serverNodes { - if node.Address != "" { - serverAddrs = append(serverAddrs, models.ServerAddr{ - IsLeader: logic.IsLeader(&node), - Address: node.Address, - }) - } - } - - networkSettings, _ := logic.GetParentNetwork(node.Network) - // TODO consolidate functionality around files - networkSettings.NodesLastModified = time.Now().Unix() - networkSettings.DefaultServerAddrs = serverAddrs - if err := logic.SaveNetwork(&networkSettings); err != nil { - logger.Log(1, "unable to save network on serverAddr update", err.Error()) - } - node.NetworkSettings.DefaultServerAddrs = networkSettings.DefaultServerAddrs -} diff --git a/controllers/node.go b/controllers/node.go index 9b2fce47..f6dc48a7 100644 --- a/controllers/node.go +++ b/controllers/node.go @@ -463,7 +463,6 @@ func createNode(w http.ResponseWriter, r *http.Request) { return } } - getServerAddrs(&node) key, keyErr := logic.RetrievePublicTrafficKey() if keyErr != nil { logger.Log(0, "error retrieving key: ", keyErr.Error()) diff --git a/dev.yaml b/dev.yaml new file mode 100644 index 00000000..7970ad6e --- /dev/null +++ b/dev.yaml @@ -0,0 +1,42 @@ +server: + corednsaddr: "" + apiconn: "api.ping.clustercat.com:443" + apihost: "" + apiport: "8081" + grpcconn: "grpc.ping.clustercat.com:443" + grpchost: "" + grpcport: "50051" + grpcsecure: "on" + mqhost: "localhost" + masterkey: "secretkey" + dnskey: "" + allowedorigin: "*" + nodeid: "netmaker" + restbackend: "on" + agentbackend: "on" + messagequeuebackend: "on" + clientmode: "on" + dnsmode: "on" + disableremoteipcheck: "" + grpcssl: "on" + version: "" + sqlconn: "" + platform: "" + database: "sqlite" + defaultnodelimit: "" + verbosity: 3 + servercheckininterval: "" + authprovider: "" + clientid: "" + clientsecret: "" + frontendurl: "" + displaykeys: "" + azuretenant: "" + rce: "off" + debug: "" + telemetry: "" + manageiptables: "off" + portforwardservices: "" + hostnetwork: "off" + mqport: "" + server: "broker.ping.clustercat.com" diff --git a/logic/accesskeys.go b/logic/accesskeys.go index 40f58483..7779b7f2 100644 --- a/logic/accesskeys.go +++ b/logic/accesskeys.go @@ -143,7 +143,7 @@ func DecrimentKey(networkName string, keyvalue string) { var network models.Network network, err := GetParentNetwork(networkName) - if err != nil || network.IsComms == "yes" { + if err != nil { return } @@ -176,9 +176,6 @@ func IsKeyValid(networkname string, keyvalue string) bool { return false } accesskeys := network.AccessKeys - if network.IsComms == "yes" { - accesskeys = getAllAccessKeys() - } var key models.AccessKey foundkey := false diff --git a/logic/server.go b/logic/server.go index ee93232b..851f93f6 100644 --- a/logic/server.go +++ b/logic/server.go @@ -43,7 +43,7 @@ func ServerJoin(networkSettings *models.Network) (models.Node, error) { } var ishub = "no" - if networkSettings.IsPointToSite == "yes" || networkSettings.IsComms == "yes" { + if networkSettings.IsPointToSite == "yes" { nodes, err := GetNetworkNodes(networkSettings.NetID) if err != nil || nodes == nil { ishub = "yes" diff --git a/logic/serverconf.go b/logic/serverconf.go index 2da3e90a..0ba1e258 100644 --- a/logic/serverconf.go +++ b/logic/serverconf.go @@ -72,32 +72,3 @@ func StoreJWTSecret(privateKey string) error { } 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) -} diff --git a/models/network.go b/models/network.go index 74ae87af..64a9cfc1 100644 --- a/models/network.go +++ b/models/network.go @@ -25,14 +25,11 @@ type Network struct { IsIPv4 string `json:"isipv4" bson:"isipv4" validate:"checkyesorno"` IsIPv6 string `json:"isipv6" bson:"isipv6" validate:"checkyesorno"` IsPointToSite string `json:"ispointtosite" bson:"ispointtosite" validate:"checkyesorno"` - IsComms string `json:"iscomms" bson:"iscomms" validate:"checkyesorno"` LocalRange string `json:"localrange" bson:"localrange" validate:"omitempty,cidr"` DefaultUDPHolePunch string `json:"defaultudpholepunch" bson:"defaultudpholepunch" validate:"checkyesorno"` DefaultExtClientDNS string `json:"defaultextclientdns" bson:"defaultextclientdns"` DefaultMTU int32 `json:"defaultmtu" bson:"defaultmtu"` - // consider removing - may be depreciated - DefaultServerAddrs []ServerAddr `json:"defaultserveraddrs" bson:"defaultserveraddrs" yaml:"defaultserveraddrs"` - DefaultACL string `json:"defaultacl" bson:"defaultacl" yaml:"defaultacl" validate:"checkyesorno"` + DefaultACL string `json:"defaultacl" bson:"defaultacl" yaml:"defaultacl" validate:"checkyesorno"` } // SaveData - sensitive fields of a network that should be kept the same @@ -61,9 +58,6 @@ func (network *Network) SetDefaults() { if network.IsPointToSite == "" { network.IsPointToSite = "no" } - if network.IsComms == "" { - network.IsComms = "no" - } if network.DefaultInterface == "" { if len(network.NetID) < 13 { network.DefaultInterface = "nm-" + network.NetID diff --git a/netclient/command/commands.go b/netclient/command/commands.go index f500c3df..660a3d45 100644 --- a/netclient/command/commands.go +++ b/netclient/command/commands.go @@ -10,36 +10,11 @@ import ( "github.com/gravitl/netmaker/netclient/ncutils" ) -// JoinComms -- Join the message queue comms network if it doesn't have it -// tries to ping if already found locally, if fail ping pull for best effort for communication -func JoinComms(cfg *config.ClientConfig) error { - commsCfg := &config.ClientConfig{} - commsCfg.Server.AccessKey = cfg.Server.AccessKey - commsCfg.Server.CoreDNSAddr = cfg.Server.CoreDNSAddr - if commsCfg.ConfigFileExists() { - return nil - } - commsCfg.ReadConfig() - - if len(commsCfg.Node.Name) == 0 { - if err := functions.JoinNetwork(commsCfg, "", true); err != nil { - return err - } - } else { // check if comms is currently reachable - if err := functions.PingServer(commsCfg); err != nil { - if err = Pull(commsCfg); err != nil { - return err - } - } - } - return nil -} - // Join - join command to run from cli func Join(cfg *config.ClientConfig, privateKey string) error { var err error //join network - err = functions.JoinNetwork(cfg, privateKey, false) + err = functions.JoinNetwork(cfg, privateKey) if err != nil && !cfg.DebugOn { if !strings.Contains(err.Error(), "ALREADY_INSTALLED") { logger.Log(1, "error installing: ", err.Error()) @@ -89,13 +64,6 @@ func Leave(cfg *config.ClientConfig, force bool) error { } else { logger.Log(0, "success") } - //nets, err := ncutils.GetSystemNetworks() - //if err == nil && len(nets) == 1 { - //if nets[0] == cfg.Node.CommID { - //logger.Log(1, "detected comms as remaining network, removing...") - //err = functions.LeaveNetwork(nets[0], true) - //} - //} return err } diff --git a/netclient/functions/daemon.go b/netclient/functions/daemon.go index 63a706df..a79df3cd 100644 --- a/netclient/functions/daemon.go +++ b/netclient/functions/daemon.go @@ -18,7 +18,6 @@ import ( mqtt "github.com/eclipse/paho.mqtt.golang" "github.com/go-ping/ping" "github.com/gravitl/netmaker/logger" - "github.com/gravitl/netmaker/models" "github.com/gravitl/netmaker/netclient/auth" "github.com/gravitl/netmaker/netclient/config" "github.com/gravitl/netmaker/netclient/daemon" @@ -72,7 +71,7 @@ func Daemon() error { wg := sync.WaitGroup{} ctx, cancel := context.WithCancel(context.Background()) wg.Add(1) - go Checkin(ctx, &wg, serverSet) + go Checkin(ctx, &wg) quit := make(chan os.Signal, 1) signal.Notify(quit, syscall.SIGTERM, os.Interrupt) <-quit @@ -112,7 +111,6 @@ func UpdateKeys(nodeCfg *config.ClientConfig, client mqtt.Client) error { } // PingServer -- checks if server is reachable -// use commsCfg only* func PingServer(cfg *config.ClientConfig) error { pinger, err := ping.NewPinger(cfg.Server.Server) if err != nil { @@ -181,10 +179,9 @@ func messageQueue(ctx context.Context, server string) { } // setupMQTTSub creates a connection to broker and subscribes to topic -// utilizes comms client configs to setup connections func setupMQTTSub(server string) mqtt.Client { opts := mqtt.NewClientOptions() - opts.AddBroker("ssl://" + server + ":8883") // TODO get the appropriate port of the comms mq server + opts.AddBroker("ssl://" + server + ":8883") opts.TLSConfig = NewTLSConfig(nil, server) opts.SetDefaultPublishHandler(All) opts.SetAutoReconnect(true) @@ -325,7 +322,7 @@ func NewTLSConfig(cfg *config.ClientConfig, server string) *tls.Config { func setupMQTT(cfg *config.ClientConfig, publish bool) mqtt.Client { opts := mqtt.NewClientOptions() server := cfg.Server.Server - opts.AddBroker("ssl://" + server + ":8883") // TODO get the appropriate port of the comms mq server + opts.AddBroker("ssl://" + server + ":8883") opts.TLSConfig = NewTLSConfig(cfg, "") opts.SetDefaultPublishHandler(All) opts.SetAutoReconnect(true) @@ -451,16 +448,6 @@ func decryptMsg(nodeCfg *config.ClientConfig, msg []byte) ([]byte, error) { return ncutils.DeChunk(msg, serverPubKey, diskKey) } -func getServerAddress(cfg *config.ClientConfig) string { - var server models.ServerAddr - for _, server = range cfg.Node.NetworkSettings.DefaultServerAddrs { - if server.Address != "" && server.IsLeader { - break - } - } - return server.Address -} - // == Message Caches == func insert(network, which, cache string) { diff --git a/netclient/functions/join.go b/netclient/functions/join.go index d41e69c4..27cadfe8 100644 --- a/netclient/functions/join.go +++ b/netclient/functions/join.go @@ -25,7 +25,7 @@ import ( ) // JoinNetwork - helps a client join a network -func JoinNetwork(cfg *config.ClientConfig, privateKey string, iscomms bool) error { +func JoinNetwork(cfg *config.ClientConfig, privateKey string) error { if cfg.Node.Network == "" { return errors.New("no network provided") } @@ -101,7 +101,7 @@ func JoinNetwork(cfg *config.ClientConfig, privateKey string, iscomms bool) erro // Find and set node MacAddress if cfg.Node.MacAddress == "" { macs, err := ncutils.GetMacAddr() - if err != nil || iscomms { + if err != nil { //if macaddress can't be found set to random string cfg.Node.MacAddress = ncutils.MakeRandomString(18) } else { diff --git a/netclient/functions/mqhandlers.go b/netclient/functions/mqhandlers.go index 40298dc3..4f93b93e 100644 --- a/netclient/functions/mqhandlers.go +++ b/netclient/functions/mqhandlers.go @@ -202,10 +202,6 @@ func UpdatePeers(client mqtt.Client, msg mqtt.Message) { return } logger.Log(0, "received peer update for node "+cfg.Node.Name+" "+cfg.Node.Network) - //skip dns updates if this is a peer update for comms network - if cfg.Node.NetworkSettings.IsComms == "yes" { - return - } if cfg.Node.DNSOn == "yes" { if err := setHostDNS(peerUpdate.DNS, cfg.Node.Network, ncutils.IsWindows()); err != nil { logger.Log(0, "error updating /etc/hosts "+err.Error()) diff --git a/netclient/functions/mqpublish.go b/netclient/functions/mqpublish.go index 93256ea4..fffd4870 100644 --- a/netclient/functions/mqpublish.go +++ b/netclient/functions/mqpublish.go @@ -18,7 +18,7 @@ import ( // Checkin -- go routine that checks for public or local ip changes, publishes changes // if there are no updates, simply "pings" the server as a checkin -func Checkin(ctx context.Context, wg *sync.WaitGroup, currentComms map[string]struct{}) { +func Checkin(ctx context.Context, wg *sync.WaitGroup) { defer wg.Done() for { select { @@ -113,8 +113,7 @@ func Hello(nodeCfg *config.ClientConfig) { logger.Log(3, "server checkin complete") } -// requires the commscfg in which to send traffic over and nodecfg of node that is publish the message -// node cfg is so that the traffic keys of that node may be fetched for encryption +// node cfg is required in order to fetch the traffic keys of that node for encryption func publish(nodeCfg *config.ClientConfig, dest string, msg []byte, qos byte) error { // setup the keys trafficPrivKey, err := auth.RetrieveTrafficKey(nodeCfg.Node.Network) diff --git a/netclient/functions/register.go b/netclient/functions/register.go index 1f06811a..af71895b 100644 --- a/netclient/functions/register.go +++ b/netclient/functions/register.go @@ -47,7 +47,7 @@ func Register(cfg *config.ClientConfig, key string) error { } else if err != nil { return err } - return JoinNetwork(cfg, key, false) + return JoinNetwork(cfg, key) } // RegisterWithServer calls the register endpoint with privatekey and commonname - api returns ca and client certificate diff --git a/servercfg/serverconf.go b/servercfg/serverconf.go index 8fd59208..ca8ea73b 100644 --- a/servercfg/serverconf.go +++ b/servercfg/serverconf.go @@ -13,7 +13,6 @@ import ( var ( Version = "dev" - commsID = "" ) // SetHost - sets the host ip @@ -206,11 +205,6 @@ func GetMQPort() string { return mqport } -// SetCommsID - sets the commsID -func SetCommsID(newCommsID string) { - commsID = newCommsID -} - // GetMessageQueueEndpoint - gets the message queue endpoint func GetMessageQueueEndpoint() string { host, _ := GetPublicIP() diff --git a/serverctl/serverctl.go b/serverctl/serverctl.go index e1610b85..48d8964b 100644 --- a/serverctl/serverctl.go +++ b/serverctl/serverctl.go @@ -15,30 +15,11 @@ import ( "github.com/gravitl/netmaker/servercfg" ) -// COMMS_NETID - name of the comms network -var COMMS_NETID string - const ( // NETMAKER_BINARY_NAME - name of netmaker binary NETMAKER_BINARY_NAME = "netmaker" ) -// 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 - servercfg.SetCommsID(COMMS_NETID) - return - } - COMMS_NETID = currentid - servercfg.SetCommsID(COMMS_NETID) -} - // InitServerNetclient - intializes the server netclient // 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