mirror of
https://github.com/gravitl/netmaker.git
synced 2024-09-20 15:26:04 +08:00
remove comms network leftovers
Signed-off-by: Matthew R. Kasun <mkasun@nusak.ca>
This commit is contained in:
parent
e1b590d43f
commit
747d6bc692
|
@ -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"`
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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())
|
||||
|
|
42
dev.yaml
Normal file
42
dev.yaml
Normal file
|
@ -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"
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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())
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue