Skip to content

v0.1.0: BGP and DSR gateway APIs

Latest

Choose a tag to compare

@scotwells scotwells released this 16 Sep 22:26
ec15d7b

First release of the go.datum.net/network API: Kubernetes CRDs for BGP routing, SRv6, and a DSR/Maglev network gateway with sharded egress.

Important

These are v1alpha1 APIs and may change in breaking ways between minor releases. Requires Kubernetes 1.28+ for CEL isIP()/isCIDR() validation.

What's new

  • BGP routing CRDs. BGPRouter, BGPPeer, BGPAdvertisement, BGPPolicy, BGPVRFInstance, BGPPrefixList, and BGPCommunitySet, with peer options for remotePort, updateSource, sendCommunity, allowASIn, and maximumPrefix. (#3, #5, #11)
  • SRv6 addressing. BGPRouter gains an SRv6 locator field and typed uSID addressing fields. (#4, #6)
  • Configurable BGP listen port. BGPRouter can listen on a port other than 179. (#13)
  • DSR/Maglev gateway APIs. NetworkGateway, NetworkRule, NetworkEgressPolicy, and ServiceVIPBinding describe a consistent-hash L4 load balancer in which backends reply to clients directly, and BGPVRFInstance gains an optional NPTv6 mapping. (#15, #17)
  • EgressShard for NAT66 and NAT64. One sharded egress kind covers both address families, and CEL rejects an address from the wrong family when the object is created. (#22)
  • Full-width route targets. BGPVRFInstance route targets accept the full uint32 range. (#19)
  • Removed BGPRouter.roles. The unused roles field was dropped. (#20)
  • Kustomize CRD bundle. CRDs are published to ghcr.io/datum-cloud/network-kustomize. (#18)