Skip to content

Commit 8a080fd

Browse files
committed
feat: render ipv4 and ipv6 separately
1 parent 53a340a commit 8a080fd

File tree

3 files changed

+19
-14
lines changed

3 files changed

+19
-14
lines changed

.dev/br-lft-act.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,11 @@ bridges:
4242
maximum_delay: 3600s
4343

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

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

5151
metrics:
5252
listen_addr: 0.0.0.0:8000

.dev/br-lft-sby.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,11 @@ bridges:
3434

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

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

4343
metrics:
4444
listen_addr: 0.0.0.0:8001

reconciler/render.go

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,11 @@ import (
1111
const (
1212
placeholderProto = "proto"
1313

14-
placeholderBridgeInterface = "bridge_interface"
15-
placeholderBridgeInterfaceIP = "bridge_interface_ip"
16-
placeholderBridgePeerCIDR = "bridge_peer_cidr"
17-
placeholderBridgeExtraPeerCIDRs = "bridge_extra_peer_cidrs"
14+
placeholderBridgeInterface = "bridge_interface"
15+
placeholderBridgeInterfaceIP = "bridge_interface_ip"
16+
placeholderBridgePeerCIDR = "bridge_peer_cidr"
17+
placeholderBridgePeerCIDRsIPv4 = "bridge_peer_cidrs_ipv4"
18+
placeholderBridgePeerCIDRsIPv6 = "bridge_peer_cidrs_ipv6"
1819

1920
placeholderTunnelInterface = "tunnel_interface"
2021
placeholderTunnelInterfaceIP = "tunnel_interface_ip"
@@ -55,14 +56,18 @@ func (r *Reconciler) renderPlaceholders(e event.Event) (map[string]string, error
5556
}
5657
}
5758

58-
if len(cidrs) > 1 {
59-
extraPeerCIDRs := make([]string, 0, len(cidrs)-1)
60-
for idx := 1; idx < len(cidrs); idx++ {
61-
extraPeerCIDRs = append(extraPeerCIDRs, cidrs[idx].String())
59+
cidrsIPv4 := make([]string, 0)
60+
cidrsIPv6 := make([]string, 0)
61+
for _, cidr := range cidrs {
62+
if cidr.IsIPv4() {
63+
cidrsIPv4 = append(cidrsIPv4, cidr.String())
64+
} else {
65+
cidrsIPv6 = append(cidrsIPv4, cidr.String())
6266
}
63-
64-
placeholders[placeholderBridgeExtraPeerCIDRs] = strings.Join(extraPeerCIDRs, ",")
6567
}
68+
69+
placeholders[placeholderBridgePeerCIDRsIPv4] = strings.Join(cidrsIPv4, " ")
70+
placeholders[placeholderBridgePeerCIDRsIPv6] = strings.Join(cidrsIPv6, " ")
6671
}
6772

6873
return placeholders, nil

0 commit comments

Comments
 (0)