Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3a586ecaf2 | |||
| 8db87c6102 | |||
| 9810f5c6c1 | |||
| 8948b6702a |
@@ -25,5 +25,5 @@ var (
|
|||||||
// ErrInvalidRing returns an error indicating the [rings.RingID]
|
// ErrInvalidRing returns an error indicating the [rings.RingID]
|
||||||
// can't be used for the intended purpose
|
// can't be used for the intended purpose
|
||||||
func ErrInvalidRing(ringID rings.RingID) error {
|
func ErrInvalidRing(ringID rings.RingID) error {
|
||||||
return core.QuietWrap(fs.ErrInvalid, "invalid ring %v", ringID)
|
return core.QuietWrap(fs.ErrInvalid, "invalid ring %v", ringID-1)
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-17
@@ -27,8 +27,6 @@ func AsWireguardInterfaceID(ring rings.RingID) (WireguardInterfaceID, error) {
|
|||||||
switch ring {
|
switch ring {
|
||||||
case rings.RingZeroID:
|
case rings.RingZeroID:
|
||||||
return 0, nil
|
return 0, nil
|
||||||
case rings.RingOneID:
|
|
||||||
return 1, nil
|
|
||||||
default:
|
default:
|
||||||
return 0, ErrInvalidRing(ring)
|
return 0, ErrInvalidRing(ring)
|
||||||
}
|
}
|
||||||
@@ -148,17 +146,9 @@ var (
|
|||||||
Decode: rings.DecodeRingZeroAddress,
|
Decode: rings.DecodeRingZeroAddress,
|
||||||
Encode: rings.RingZeroAddress,
|
Encode: rings.RingZeroAddress,
|
||||||
}
|
}
|
||||||
// RingOne is a wg1 address encoder/decoder
|
|
||||||
RingOne = RingAddressEncoder{
|
|
||||||
ID: rings.RingOneID,
|
|
||||||
Port: RingOnePort,
|
|
||||||
Decode: rings.DecodeRingOneAddress,
|
|
||||||
Encode: rings.RingOneAddress,
|
|
||||||
}
|
|
||||||
// Rings provides indexed access to the ring address encoders
|
// Rings provides indexed access to the ring address encoders
|
||||||
Rings = []RingAddressEncoder{
|
Rings = []RingAddressEncoder{
|
||||||
RingZero,
|
RingZero,
|
||||||
RingOne,
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -215,14 +205,11 @@ func (r *Ring) AddPeer(p *Machine) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (r *Ring) setRingZeroAllowedIPs(rp *RingPeer) {
|
func (r *Ring) setRingZeroAllowedIPs(rp *RingPeer) {
|
||||||
regionID, zoneID, _, _ := r.Decode(rp.Address)
|
// ring0 peer
|
||||||
|
|
||||||
// everyone on ring0 is a gateway to ring1
|
|
||||||
subnet, _ := rings.RingOnePrefix(regionID, zoneID)
|
|
||||||
rp.AllowSubnet(subnet)
|
|
||||||
|
|
||||||
// peer
|
|
||||||
rp.AllowCIDR(rp.Address, 32)
|
rp.AllowCIDR(rp.Address, 32)
|
||||||
|
|
||||||
|
// everyone on ring0 has a leg on ring1
|
||||||
|
rp.AllowCIDR(rp.Node.RingOneAddress(), 32)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Ring) setRingOneGatewayAllowedIPs(rp *RingPeer) {
|
func (r *Ring) setRingOneGatewayAllowedIPs(rp *RingPeer) {
|
||||||
|
|||||||
@@ -82,13 +82,6 @@ func (m *Cluster) WriteWireguardConfig(ring rings.RingID) error {
|
|||||||
switch ring {
|
switch ring {
|
||||||
case rings.RingZeroID:
|
case rings.RingZeroID:
|
||||||
return writeWireguardConfig(m, m, ring)
|
return writeWireguardConfig(m, m, ring)
|
||||||
case rings.RingOneID:
|
|
||||||
var err error
|
|
||||||
m.ForEachZone(func(z *Zone) bool {
|
|
||||||
err = writeWireguardConfig(m, z, ring)
|
|
||||||
return err != nil
|
|
||||||
})
|
|
||||||
return err
|
|
||||||
default:
|
default:
|
||||||
return ErrInvalidRing(ring)
|
return ErrInvalidRing(ring)
|
||||||
}
|
}
|
||||||
@@ -97,10 +90,12 @@ func (m *Cluster) WriteWireguardConfig(ring rings.RingID) error {
|
|||||||
// WriteWireguardConfig rewrites all wgN.conf on all machines
|
// WriteWireguardConfig rewrites all wgN.conf on all machines
|
||||||
// on the Zone attached to that ring
|
// on the Zone attached to that ring
|
||||||
func (z *Zone) WriteWireguardConfig(ring rings.RingID) error {
|
func (z *Zone) WriteWireguardConfig(ring rings.RingID) error {
|
||||||
if ring == rings.RingZeroID || ring == rings.RingOneID {
|
switch ring {
|
||||||
|
case rings.RingZeroID:
|
||||||
return writeWireguardConfig(z.zones, z.zones, ring)
|
return writeWireguardConfig(z.zones, z.zones, ring)
|
||||||
|
default:
|
||||||
|
return ErrInvalidRing(ring)
|
||||||
}
|
}
|
||||||
return ErrInvalidRing(ring)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func writeWireguardConfig(z ZoneIterator, m MachineIterator, ring rings.RingID) error {
|
func writeWireguardConfig(z ZoneIterator, m MachineIterator, ring rings.RingID) error {
|
||||||
@@ -161,13 +156,6 @@ func (m *Cluster) SyncWireguardConfig(ring rings.RingID) error {
|
|||||||
switch ring {
|
switch ring {
|
||||||
case rings.RingZeroID:
|
case rings.RingZeroID:
|
||||||
return syncWireguardConfig(m, m, ring)
|
return syncWireguardConfig(m, m, ring)
|
||||||
case rings.RingOneID:
|
|
||||||
var err error
|
|
||||||
m.ForEachZone(func(z *Zone) bool {
|
|
||||||
err = syncWireguardConfig(m, z, ring)
|
|
||||||
return err != nil
|
|
||||||
})
|
|
||||||
return err
|
|
||||||
default:
|
default:
|
||||||
return ErrInvalidRing(ring)
|
return ErrInvalidRing(ring)
|
||||||
}
|
}
|
||||||
@@ -179,8 +167,6 @@ func (z *Zone) SyncWireguardConfig(ring rings.RingID) error {
|
|||||||
switch ring {
|
switch ring {
|
||||||
case rings.RingZeroID:
|
case rings.RingZeroID:
|
||||||
return syncWireguardConfig(z.zones, z.zones, ring)
|
return syncWireguardConfig(z.zones, z.zones, ring)
|
||||||
case rings.RingOneID:
|
|
||||||
return syncWireguardConfig(z.zones, z, ring)
|
|
||||||
default:
|
default:
|
||||||
return ErrInvalidRing(ring)
|
return ErrInvalidRing(ring)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user