mirror of
https://github.com/netbirdio/netbird.git
synced 2025-06-24 03:31:28 +02:00
Move to relay address config to object
Add test for mgm config parser
This commit is contained in:
parent
e0d086a8a8
commit
820e2feec9
@ -195,7 +195,7 @@ var (
|
|||||||
return fmt.Errorf("failed to build default manager: %v", err)
|
return fmt.Errorf("failed to build default manager: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
turnRelayTokenManager := server.NewTimeBasedAuthSecretsManager(peersUpdateManager, config.TURNConfig, config.RelayAddress)
|
turnRelayTokenManager := server.NewTimeBasedAuthSecretsManager(peersUpdateManager, config.TURNConfig, config.RelayConfig)
|
||||||
|
|
||||||
trustedPeers := config.ReverseProxy.TrustedPeers
|
trustedPeers := config.ReverseProxy.TrustedPeers
|
||||||
defaultTrustedPeers := []netip.Prefix{netip.MustParsePrefix("0.0.0.0/0"), netip.MustParsePrefix("::/0")}
|
defaultTrustedPeers := []netip.Prefix{netip.MustParsePrefix("0.0.0.0/0"), netip.MustParsePrefix("::/0")}
|
||||||
@ -538,6 +538,10 @@ func loadMgmtConfig(ctx context.Context, mgmtConfigPath string) (*server.Config,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if loadedConfig.RelayConfig != nil {
|
||||||
|
log.Infof("Relay address: %v", loadedConfig.RelayConfig.Address)
|
||||||
|
}
|
||||||
|
|
||||||
return loadedConfig, err
|
return loadedConfig, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
54
management/cmd/management_test.go
Normal file
54
management/cmd/management_test.go
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
package cmd
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"os"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
exampleConfig = `{
|
||||||
|
"RelayConfig": {
|
||||||
|
"Address": "rels://relay.stage.npeer.io"
|
||||||
|
},
|
||||||
|
"HttpConfig": {
|
||||||
|
"AuthAudience": "https://stageapp/",
|
||||||
|
"AuthIssuer": "https://something.eu.auth0.com/",
|
||||||
|
"OIDCConfigEndpoint": "https://something.eu.auth0.com/.well-known/openid-configuration"
|
||||||
|
}
|
||||||
|
}`
|
||||||
|
)
|
||||||
|
|
||||||
|
func Test_loadMgmtConfig(t *testing.T) {
|
||||||
|
tmpFile, err := createConfig()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("failed to create config: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
cfg, err := loadMgmtConfig(context.Background(), tmpFile)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("failed to load management config: %s", err)
|
||||||
|
}
|
||||||
|
if cfg.RelayConfig == nil {
|
||||||
|
t.Fatalf("config is nil")
|
||||||
|
}
|
||||||
|
if cfg.RelayConfig.Address == "" {
|
||||||
|
t.Fatalf("relay address is empty")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func createConfig() (string, error) {
|
||||||
|
tmpfile, err := os.CreateTemp("", "config.json")
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
_, err = tmpfile.Write([]byte(exampleConfig))
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := tmpfile.Close(); err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
return tmpfile.Name(), nil
|
||||||
|
}
|
@ -32,10 +32,10 @@ const (
|
|||||||
|
|
||||||
// Config of the Management service
|
// Config of the Management service
|
||||||
type Config struct {
|
type Config struct {
|
||||||
Stuns []*Host
|
Stuns []*Host
|
||||||
TURNConfig *TURNConfig
|
TURNConfig *TURNConfig
|
||||||
RelayAddress string
|
RelayConfig *RelayConfig
|
||||||
Signal *Host
|
Signal *Host
|
||||||
|
|
||||||
Datadir string
|
Datadir string
|
||||||
DataStoreEncryptionKey string
|
DataStoreEncryptionKey string
|
||||||
@ -72,6 +72,10 @@ type TURNConfig struct {
|
|||||||
Turns []*Host
|
Turns []*Host
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type RelayConfig struct {
|
||||||
|
Address string
|
||||||
|
}
|
||||||
|
|
||||||
// HttpServerConfig is a config of the HTTP Management service server
|
// HttpServerConfig is a config of the HTTP Management service server
|
||||||
type HttpServerConfig struct {
|
type HttpServerConfig struct {
|
||||||
LetsEncryptDomain string
|
LetsEncryptDomain string
|
||||||
|
@ -518,9 +518,9 @@ func toWiretrusteeConfig(config *Config, turnCredentials *TURNRelayToken, relayT
|
|||||||
}
|
}
|
||||||
|
|
||||||
var relayCfg *proto.RelayConfig
|
var relayCfg *proto.RelayConfig
|
||||||
if config.RelayAddress != "" {
|
if config.RelayConfig != nil && config.RelayConfig.Address != "" {
|
||||||
relayCfg = &proto.RelayConfig{
|
relayCfg = &proto.RelayConfig{
|
||||||
Urls: []string{config.RelayAddress},
|
Urls: []string{config.RelayConfig.Address},
|
||||||
}
|
}
|
||||||
|
|
||||||
if relayToken != nil {
|
if relayToken != nil {
|
||||||
|
@ -31,12 +31,17 @@ type TimeBasedAuthSecretsManager struct {
|
|||||||
|
|
||||||
type TURNRelayToken auth.Token
|
type TURNRelayToken auth.Token
|
||||||
|
|
||||||
func NewTimeBasedAuthSecretsManager(updateManager *PeersUpdateManager, turnCfg *TURNConfig, relayAddress string) *TimeBasedAuthSecretsManager {
|
func NewTimeBasedAuthSecretsManager(updateManager *PeersUpdateManager, turnCfg *TURNConfig, relayConfig *RelayConfig) *TimeBasedAuthSecretsManager {
|
||||||
|
|
||||||
|
var relayAddr string
|
||||||
|
if relayConfig != nil {
|
||||||
|
relayAddr = relayConfig.Address
|
||||||
|
}
|
||||||
return &TimeBasedAuthSecretsManager{
|
return &TimeBasedAuthSecretsManager{
|
||||||
mux: sync.Mutex{},
|
mux: sync.Mutex{},
|
||||||
updateManager: updateManager,
|
updateManager: updateManager,
|
||||||
turnCfg: turnCfg,
|
turnCfg: turnCfg,
|
||||||
relayAddr: relayAddress,
|
relayAddr: relayAddr,
|
||||||
hmacToken: auth.NewTimedHMAC(turnCfg.Secret, turnCfg.CredentialsTTL.Duration),
|
hmacToken: auth.NewTimedHMAC(turnCfg.Secret, turnCfg.CredentialsTTL.Duration),
|
||||||
cancelMap: make(map[string]chan struct{}),
|
cancelMap: make(map[string]chan struct{}),
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user