Skip to content

Commit

Permalink
keypairs failure now return error instead of panic, removed alsu util…
Browse files Browse the repository at this point in the history
…s that are used in a single specific case
  • Loading branch information
mavimo committed Aug 23, 2018
1 parent 018f84d commit 972259b
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 32 deletions.
15 changes: 11 additions & 4 deletions pkg/clustermanager/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,10 @@ func (manager *Manager) ProvisionNodes(nodes []Node) error {
func (manager *Manager) SetupEncryptedNetwork() error {
nodes := manager.nodes
// render a public/private key pair
keyPairs := manager.GenerateKeyPairs(nodes[0], len(nodes))
keyPairs, err := manager.GenerateKeyPairs(nodes[0], len(nodes))
if err != nil {
return fmt.Errorf("unable to setup encrypted network: %v", err)
}

for i, keyPair := range keyPairs {
manager.nodes[i].WireGuardKeyPair = keyPair
Expand Down Expand Up @@ -134,7 +137,7 @@ func (manager *Manager) SetupEncryptedNetwork() error {
}(node)
}

err := waitOrError(trueChan, errChan, &numProc)
err = waitOrError(trueChan, errChan, &numProc)
if err != nil {
return err
}
Expand Down Expand Up @@ -435,8 +438,12 @@ func (manager *Manager) DeployLoadBalancer(nodes []Node) error {
errChan := make(chan error)
trueChan := make(chan bool)
numProcs := 0
masterNodes := manager.clusterProvider.GetMasterNodes()
masterIps := strings.Join(Nodes2IPs(masterNodes), " ")
masterNodesIP := []string{}
for _, node := range manager.clusterProvider.GetMasterNodes() {
masterNodesIP = append(masterNodesIP, node.IPAddress)
}

masterIps := strings.Join(masterNodesIP, " ")
for _, node := range nodes {
if !node.IsMaster && node.IsEtcd {
continue
Expand Down
24 changes: 0 additions & 24 deletions pkg/clustermanager/util.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package clustermanager

import "log"

func waitOrError(tc chan bool, ec chan error, numProcPtr *int) error {
numProcs := *numProcPtr
for numProcs > 0 {
Expand All @@ -15,25 +13,3 @@ func waitOrError(tc chan bool, ec chan error, numProcPtr *int) error {

return nil
}

//Node2IP get IP address for a node
func Node2IP(node Node) string {
return node.IPAddress
}

//Nodes2IPs get the collection of IP addresses for a node
func Nodes2IPs(nodes []Node) []string {
ips := []string{}
for _, node := range nodes {
ips = append(ips, Node2IP(node))
}

return ips
}

//FatalOnError is an helper function used to transfor error to fatal
func FatalOnError(err error) {
if err != nil {
log.Fatal(err)
}
}
12 changes: 8 additions & 4 deletions pkg/clustermanager/wireguard.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,23 @@ type WgKeyPair struct {
}

//GenerateKeyPairs generate key pairs
func (manager *Manager) GenerateKeyPairs(node Node, count int) []WgKeyPair {
func (manager *Manager) GenerateKeyPairs(node Node, count int) ([]WgKeyPair, error) {
genKeyPairs := fmt.Sprintf(`echo "[" ;for i in {1..%d}; do pk=$(wg genkey); pubk=$(echo $pk | wg pubkey);echo "{\"private\":\"$pk\",\"public\":\"$pubk\"},"; done; echo "]";`, count)
// gives an invalid JSON back
o, err := manager.nodeCommunicator.RunCmd(node, genKeyPairs)
FatalOnError(err)
if err != nil {
return []WgKeyPair{}, fmt.Errorf("unable to generate a key pairs: %v", err)
}
o = o[0:len(o)-4] + "]"
// now it's a valid json

var keyPairs []WgKeyPair
err = json.Unmarshal([]byte(o), &keyPairs)
FatalOnError(err)
if err != nil {
return []WgKeyPair{}, fmt.Errorf("unable to json decode key pairs: %v", err)
}

return keyPairs
return keyPairs, nil
}

//GenerateWireguardConf generate wireguard configuration file
Expand Down

0 comments on commit 972259b

Please sign in to comment.