generate user key for new cluster and add it to peers on bootstrap machine

This commit is contained in:
Pavel Sviderski
2024-08-29 15:38:13 +10:00
parent afe9c13283
commit eed2c8809c
7 changed files with 104 additions and 22 deletions
+9 -8
View File
@@ -19,13 +19,13 @@ type Config struct {
Subnet netip.Prefix
PrivateKey secret.Secret
PublicKey secret.Secret
Peers []PeerConfig
Peers []PeerConfig `json:",omitempty"`
}
type PeerConfig struct {
Subnet netip.Prefix
Endpoint netip.AddrPort
AllEndpoints []netip.AddrPort
Endpoint *netip.AddrPort `json:",omitempty"`
AllEndpoints []netip.AddrPort `json:",omitempty"`
PublicKey secret.Secret
}
@@ -43,17 +43,18 @@ func (c Config) toDeviceConfig() (wgtypes.Config, error) {
if kErr != nil {
return wgtypes.Config{}, fmt.Errorf("parse peer public key: %w", kErr)
}
endpoint := &net.UDPAddr{
IP: peerConfig.Endpoint.Addr().AsSlice(),
Port: int(peerConfig.Endpoint.Port()),
}
wgPeerConfigs[i] = wgtypes.PeerConfig{
PublicKey: peerPublicKey,
Endpoint: endpoint,
ReplaceAllowedIPs: true,
AllowedIPs: []net.IPNet{prefixToIPNet(peerConfig.Subnet)},
PersistentKeepaliveInterval: &persistentKeepalive,
}
if peerConfig.Endpoint != nil {
wgPeerConfigs[i].Endpoint = &net.UDPAddr{
IP: peerConfig.Endpoint.Addr().AsSlice(),
Port: int(peerConfig.Endpoint.Port()),
}
}
}
return wgtypes.Config{