Skip to content

Commit

Permalink
feat: render ipv4 and ipv6 separately
Browse files Browse the repository at this point in the history
  • Loading branch information
0x416e746f6e committed Sep 9, 2024
1 parent 53a340a commit 8a080fd
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 14 deletions.
4 changes: 2 additions & 2 deletions .dev/br-lft-act.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,11 @@ bridges:
maximum_delay: 3600s

script:
- ["ip", "-${proto}", "route", "replace", "${bridge_peer_cidr}", "dev", "${tunnel_interface}"]
- ["/bin/sh", "-c", "for cidr in ${bridge_peer_cidrs_ipv4}; do ip -4 route replace $cidr dev ${tunnel_interface}; done"]

interface_deactivate:
script:
- ["ip", "-${proto}", "route", "del", "${bridge_peer_cidr}", "dev", "${tunnel_interface}"]
- ["/bin/sh", "-c", "for cidr in ${bridge_peer_cidrs_ipv4}; do ip -4 route del $cidr dev ${tunnel_interface}; done"]

metrics:
listen_addr: 0.0.0.0:8000
4 changes: 2 additions & 2 deletions .dev/br-lft-sby.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,11 @@ bridges:

interface_activate:
script:
- ["ip", "-${proto}", "route", "replace", "${bridge_peer_cidr}", "dev", "${tunnel_interface}"]
- ["/bin/sh", "-c", "for cidr in ${bridge_peer_cidrs_ipv4}; do ip -4 route replace $cidr dev ${tunnel_interface}; done"]

interface_deactivate:
script:
- ["ip", "-${proto}", "route", "del", "${bridge_peer_cidr}", "dev", "${tunnel_interface}"]
- ["/bin/sh", "-c", "for cidr in ${bridge_peer_cidrs_ipv4}; do ip -4 route del $cidr dev ${tunnel_interface}; done"]

metrics:
listen_addr: 0.0.0.0:8001
25 changes: 15 additions & 10 deletions reconciler/render.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,11 @@ import (
const (
placeholderProto = "proto"

placeholderBridgeInterface = "bridge_interface"
placeholderBridgeInterfaceIP = "bridge_interface_ip"
placeholderBridgePeerCIDR = "bridge_peer_cidr"
placeholderBridgeExtraPeerCIDRs = "bridge_extra_peer_cidrs"
placeholderBridgeInterface = "bridge_interface"
placeholderBridgeInterfaceIP = "bridge_interface_ip"
placeholderBridgePeerCIDR = "bridge_peer_cidr"
placeholderBridgePeerCIDRsIPv4 = "bridge_peer_cidrs_ipv4"
placeholderBridgePeerCIDRsIPv6 = "bridge_peer_cidrs_ipv6"

placeholderTunnelInterface = "tunnel_interface"
placeholderTunnelInterfaceIP = "tunnel_interface_ip"
Expand Down Expand Up @@ -55,14 +56,18 @@ func (r *Reconciler) renderPlaceholders(e event.Event) (map[string]string, error
}
}

if len(cidrs) > 1 {
extraPeerCIDRs := make([]string, 0, len(cidrs)-1)
for idx := 1; idx < len(cidrs); idx++ {
extraPeerCIDRs = append(extraPeerCIDRs, cidrs[idx].String())
cidrsIPv4 := make([]string, 0)
cidrsIPv6 := make([]string, 0)
for _, cidr := range cidrs {
if cidr.IsIPv4() {
cidrsIPv4 = append(cidrsIPv4, cidr.String())
} else {
cidrsIPv6 = append(cidrsIPv4, cidr.String())
}

placeholders[placeholderBridgeExtraPeerCIDRs] = strings.Join(extraPeerCIDRs, ",")
}

placeholders[placeholderBridgePeerCIDRsIPv4] = strings.Join(cidrsIPv4, " ")
placeholders[placeholderBridgePeerCIDRsIPv6] = strings.Join(cidrsIPv6, " ")
}

return placeholders, nil
Expand Down

0 comments on commit 8a080fd

Please sign in to comment.