Compare commits

...

8 Commits

Author SHA1 Message Date
karasz ff3feb49f2 Merge pull request 'cluster: drop wg1.conf' (#58)
Reviewed-on: #58
2024-07-29 21:57:06 +02:00
amery b0356c7ebb jpictl: don't append -1 to ring1 addresses on jpictl list
Signed-off-by: Alejandro Mery <amery@jpi.io>
2024-07-29 19:09:37 +00:00
amery 08da69f7aa cluster: change wg0.conf to allow ring0/32 and ring1/32 on each peer
Signed-off-by: Alejandro Mery <amery@jpi.io>
2024-07-29 18:13:57 +00:00
amery 6e3bb24b36 cluster: further remove wg1 support
Signed-off-by: Alejandro Mery <amery@jpi.io>
2024-07-29 18:13:57 +00:00
amery 9810f5c6c1 cluster: drop wg1.conf generation
Signed-off-by: Alejandro Mery <amery@jpi.io>
2024-07-29 16:47:35 +00:00
amery 8948b6702a Revert "cluster: fix wg1 generation (AllowedIPs)"
This reverts commit f0c09c2176.
2024-07-29 16:47:35 +00:00
amery 593f88e2a3 Merge pull request #57 (wg1.conf)
cluster: fix wg1 generation (AllowedIPs)

Reviewed-on: #57
2024-07-26 20:34:53 +02:00
Nagy Károly Gábriel f0c09c2176 cluster: fix wg1 generation (AllowedIPs)
Signed-off-by: Nagy Károly Gábriel <k@jpi.io>
2024-07-26 15:28:32 +03:00
4 changed files with 7 additions and 79 deletions
+1 -1
View File
@@ -108,7 +108,7 @@ func (*inventory) renderRingOneZone(out *tools.LazyBuffer, r *cluster.Region, z
z.ForEachMachine(func(m *cluster.Machine) bool {
addr := m.RingOneAddress()
cidr := netip.PrefixFrom(addr, 32)
_ = out.Printf("%s\t\t%s-%v\n", cidr, m.Name, 1)
_ = out.Printf("%s\t\t%s\n", cidr, m.Name)
return false
})
return nil
+1 -1
View File
@@ -25,5 +25,5 @@ var (
// ErrInvalidRing returns an error indicating the [rings.RingID]
// can't be used for the intended purpose
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)
}
+5 -59
View File
@@ -27,8 +27,6 @@ func AsWireguardInterfaceID(ring rings.RingID) (WireguardInterfaceID, error) {
switch ring {
case rings.RingZeroID:
return 0, nil
case rings.RingOneID:
return 1, nil
default:
return 0, ErrInvalidRing(ring)
}
@@ -148,17 +146,9 @@ var (
Decode: rings.DecodeRingZeroAddress,
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 = []RingAddressEncoder{
RingZero,
RingOne,
}
)
@@ -201,61 +191,17 @@ func (r *Ring) AddPeer(p *Machine) bool {
},
}
switch {
case r.ID == rings.RingZeroID:
r.setRingZeroAllowedIPs(rp)
case p.IsGateway():
r.setRingOneGatewayAllowedIPs(rp)
default:
r.setRingOneNodeAllowedIPs(rp)
}
r.setRingZeroAllowedIPs(rp)
r.Peers = append(r.Peers, rp)
return true
}
func (r *Ring) setRingZeroAllowedIPs(rp *RingPeer) {
regionID, zoneID, _, _ := r.Decode(rp.Address)
// everyone on ring0 is a gateway to ring1
subnet, _ := rings.RingOnePrefix(regionID, zoneID)
rp.AllowSubnet(subnet)
// peer
rp.AllowCIDR(rp.Address, 32)
}
func (r *Ring) setRingOneGatewayAllowedIPs(rp *RingPeer) {
regionID, zoneID, _, _ := r.Decode(rp.Address)
// peer
func (*Ring) setRingZeroAllowedIPs(rp *RingPeer) {
// ring0 peer
rp.AllowCIDR(rp.Address, 32)
// ring1 gateways connect to all other ring1 networks
r.ForEachZone(func(z *Zone) bool {
if !z.Is(regionID, zoneID) {
subnet := z.RingOnePrefix()
rp.AllowSubnet(subnet)
}
return false
})
// ring1 gateways also connect to all ring0 addresses
r.ForEachZone(func(z *Zone) bool {
z.ForEachMachine(func(p *Machine) bool {
if p.IsGateway() {
addr, _ := p.RingZeroAddress()
rp.AllowCIDR(addr, 32)
}
return false
})
return false
})
}
func (*Ring) setRingOneNodeAllowedIPs(rp *RingPeer) {
// only to the peer itself
rp.AllowCIDR(rp.Address, 32)
// everyone on ring0 has a leg on ring1
rp.AllowCIDR(rp.Node.RingOneAddress(), 32)
}
// ForEachMachine calls a function for each Machine in the ring
-18
View File
@@ -82,13 +82,6 @@ func (m *Cluster) WriteWireguardConfig(ring rings.RingID) error {
switch ring {
case rings.RingZeroID:
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:
return ErrInvalidRing(ring)
}
@@ -100,8 +93,6 @@ func (z *Zone) WriteWireguardConfig(ring rings.RingID) error {
switch ring {
case rings.RingZeroID:
return writeWireguardConfig(z.zones, z.zones, ring)
case rings.RingOneID:
return writeWireguardConfig(z.zones, z, ring)
default:
return ErrInvalidRing(ring)
}
@@ -165,13 +156,6 @@ func (m *Cluster) SyncWireguardConfig(ring rings.RingID) error {
switch ring {
case rings.RingZeroID:
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:
return ErrInvalidRing(ring)
}
@@ -183,8 +167,6 @@ func (z *Zone) SyncWireguardConfig(ring rings.RingID) error {
switch ring {
case rings.RingZeroID:
return syncWireguardConfig(z.zones, z.zones, ring)
case rings.RingOneID:
return syncWireguardConfig(z.zones, z, ring)
default:
return ErrInvalidRing(ring)
}