@@ -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,22 @@ 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
+
2689
+ leaseTime = duration
2690
+ }
2691
+
2678
2692
opts := & networkOVN.OVNDHCPv4Opts {
2679
2693
ServerID : routerIntPortIPv4 ,
2680
2694
ServerMAC : routerMAC ,
2681
2695
Router : routerIntPortIPv4 ,
2682
2696
DomainName : n .getDomainName (),
2683
- LeaseTime : time . Duration ( time . Hour * 1 ) ,
2697
+ LeaseTime : leaseTime ,
2684
2698
MTU : bridgeMTU ,
2685
2699
Netmask : dhcpV4Netmask ,
2686
2700
DNSSearchList : n .getDNSSearchList (),
0 commit comments