mirror of
https://github.com/netbirdio/netbird.git
synced 2025-06-21 18:22:37 +02:00
feat: add addpeer cmd to add a remote Wireguard peer
This commit is contained in:
parent
550698c3b5
commit
4f3799ac65
45
cmd/addpeer.go
Normal file
45
cmd/addpeer.go
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
package cmd
|
||||||
|
|
||||||
|
import (
|
||||||
|
log "github.com/sirupsen/logrus"
|
||||||
|
"github.com/spf13/cobra"
|
||||||
|
"github.com/wiretrustee/wiretrustee/connection"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
key string
|
||||||
|
allowedIPs string
|
||||||
|
|
||||||
|
addPeerCmd = &cobra.Command{
|
||||||
|
Use: "add-peer",
|
||||||
|
Short: "add remote peer",
|
||||||
|
Run: func(cmd *cobra.Command, args []string) {
|
||||||
|
InitLog(logLevel)
|
||||||
|
|
||||||
|
if _, err := os.Stat(configPath); os.IsNotExist(err) {
|
||||||
|
log.Error("config doesn't exist, please run 'wiretrustee init' first")
|
||||||
|
os.Exit(ExitSetupFailed)
|
||||||
|
}
|
||||||
|
|
||||||
|
config, _ := Read(configPath)
|
||||||
|
config.Peers = append(config.Peers, connection.Peer{
|
||||||
|
WgPubKey: key,
|
||||||
|
WgAllowedIps: allowedIPs,
|
||||||
|
})
|
||||||
|
|
||||||
|
err := config.Write(configPath)
|
||||||
|
if err != nil {
|
||||||
|
log.Errorf("failed writing config to %s: %s", config, err.Error())
|
||||||
|
os.Exit(ExitSetupFailed)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
addPeerCmd.PersistentFlags().StringVar(&key, "key", "", "Wireguard public key of the remote peer")
|
||||||
|
addPeerCmd.PersistentFlags().StringVar(&allowedIPs, "allowedIPs", "", "Wireguard Allowed IPs for the remote peer, e.g 10.30.30.2/32")
|
||||||
|
addPeerCmd.MarkPersistentFlagRequired("key")
|
||||||
|
addPeerCmd.MarkPersistentFlagRequired("allowedIPs")
|
||||||
|
}
|
@ -33,6 +33,7 @@ func init() {
|
|||||||
rootCmd.PersistentFlags().StringVar(&configPath, "config", "/etc/wiretrustee/config.json", "Wiretrustee config file location to write new config to")
|
rootCmd.PersistentFlags().StringVar(&configPath, "config", "/etc/wiretrustee/config.json", "Wiretrustee config file location to write new config to")
|
||||||
rootCmd.PersistentFlags().StringVar(&logLevel, "log-level", "info", "")
|
rootCmd.PersistentFlags().StringVar(&logLevel, "log-level", "info", "")
|
||||||
rootCmd.AddCommand(initCmd)
|
rootCmd.AddCommand(initCmd)
|
||||||
|
rootCmd.AddCommand(addPeerCmd)
|
||||||
rootCmd.AddCommand(upCmd)
|
rootCmd.AddCommand(upCmd)
|
||||||
rootCmd.AddCommand(signalCmd)
|
rootCmd.AddCommand(signalCmd)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user