Skip to content

Commit 8f220c5

Browse files
committed
incusd/network/ovn: Add option ipv4.dhcp.expiry for OVN networks
Signed-off-by: Gwendolyn <[email protected]>
1 parent 44028f2 commit 8f220c5

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

internal/server/network/driver_ovn.go

+16-2
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,11 @@ func (n *ovn) Validate(config map[string]string) error {
398398

399399
return validate.IsNetworkAddressCIDRV4(value)
400400
}),
401-
"ipv4.dhcp": validate.Optional(validate.IsBool),
401+
"ipv4.dhcp": validate.Optional(validate.IsBool),
402+
"ipv4.dhcp.expiry": validate.Optional(func(value string) error {
403+
_, err := time.ParseDuration(value)
404+
return err
405+
}),
402406
"ipv4.dhcp.ranges": validate.Optional(validate.IsListOf(validate.IsNetworkRangeV4)),
403407
"ipv4.dhcp.routes": validate.Optional(validate.IsDHCPRouteList),
404408
"ipv6.address": validate.Optional(func(value string) error {
@@ -2675,12 +2679,22 @@ func (n *ovn) setup(update bool) error {
26752679
dhcpV4Netmask = "255.255.255.255"
26762680
}
26772681

2682+
leaseTime := time.Hour * 1
2683+
if n.config["ipv4.dhcp.expiry"] != "" {
2684+
duration, err := time.ParseDuration(n.config["ipv4.dhcp.expiry"])
2685+
if err != nil {
2686+
return fmt.Errorf("Failed to parse expiry: %w", err)
2687+
}
2688+
2689+
leaseTime = duration
2690+
}
2691+
26782692
opts := &networkOVN.OVNDHCPv4Opts{
26792693
ServerID: routerIntPortIPv4,
26802694
ServerMAC: routerMAC,
26812695
Router: routerIntPortIPv4,
26822696
DomainName: n.getDomainName(),
2683-
LeaseTime: time.Duration(time.Hour * 1),
2697+
LeaseTime: leaseTime,
26842698
MTU: bridgeMTU,
26852699
Netmask: dhcpV4Netmask,
26862700
DNSSearchList: n.getDNSSearchList(),

0 commit comments

Comments
 (0)