@@ -398,7 +398,11 @@ func (n *ovn) Validate(config map[string]string) error {
398
398
399
399
return validate .IsNetworkAddressCIDRV4 (value )
400
400
}),
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
+ }),
402
406
"ipv4.dhcp.ranges" : validate .Optional (validate .IsListOf (validate .IsNetworkRangeV4 )),
403
407
"ipv4.dhcp.routes" : validate .Optional (validate .IsDHCPRouteList ),
404
408
"ipv6.address" : validate .Optional (func (value string ) error {
@@ -2675,12 +2679,21 @@ func (n *ovn) setup(update bool) error {
2675
2679
dhcpV4Netmask = "255.255.255.255"
2676
2680
}
2677
2681
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
+ leaseTime = duration
2689
+ }
2690
+
2678
2691
opts := & networkOVN.OVNDHCPv4Opts {
2679
2692
ServerID : routerIntPortIPv4 ,
2680
2693
ServerMAC : routerMAC ,
2681
2694
Router : routerIntPortIPv4 ,
2682
2695
DomainName : n .getDomainName (),
2683
- LeaseTime : time . Duration ( time . Hour * 1 ) ,
2696
+ LeaseTime : leaseTime ,
2684
2697
MTU : bridgeMTU ,
2685
2698
Netmask : dhcpV4Netmask ,
2686
2699
DNSSearchList : n .getDNSSearchList (),
0 commit comments