rings: RingTwoPrefix()

Ring 2 is the service network shared by all kubernetes clusters.

Signed-off-by: Alejandro Mery <amery@jpi.io>
This commit is contained in:
2024-05-25 21:30:31 +00:00
parent 57251ce0af
commit ea23312d4a
2 changed files with 22 additions and 0 deletions
+19
View File
@@ -0,0 +1,19 @@
package rings
import "net/netip"
// RingTwoPrefix represents the services of a cluster
//
// Ring 2 subnets are of the form `10.(region_id).0.0/20`,
// using the address space that would belong to the ring 3
// region_id 0.
func RingTwoPrefix(region RegionID) (cidr netip.Prefix, err error) {
switch {
case !region.Valid():
err = ErrOutOfRange(region, "region")
default:
addr := AddrFrom4(10, uint(region), 0, 0)
cidr = netip.PrefixFrom(addr, RingTwoBits)
}
return cidr, err
}