Skip to content

Commit

Permalink
Subnet add mtu config 1.9 (#3397)
Browse files Browse the repository at this point in the history
* add mtu config to release-1.9

Signed-off-by: Changlu Yi <clyi@alauda.io>

---------
  • Loading branch information
changluyi committed Nov 10, 2023
1 parent 7cc9a7e commit 445527c
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 16 deletions.
4 changes: 4 additions & 0 deletions dist/images/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -599,6 +599,10 @@ spec:
- 253 # default
- 254 # main
- 255 # local
mtu:
type: integer
minimum: 68
maximum: 65535
private:
type: boolean
vlan:
Expand Down
4 changes: 4 additions & 0 deletions kubeovn-helm/templates/kube-ovn-crd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -422,6 +422,10 @@ spec:
- 253 # default
- 254 # main
- 255 # local
mtu:
type: integer
minimum: 68
maximum: 65535
private:
type: boolean
vlan:
Expand Down
1 change: 1 addition & 0 deletions pkg/apis/kubeovn/v1/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ type SubnetSpec struct {
ExternalEgressGateway string `json:"externalEgressGateway,omitempty"`
PolicyRoutingPriority uint32 `json:"policyRoutingPriority,omitempty"`
PolicyRoutingTableID uint32 `json:"policyRoutingTableID,omitempty"`
Mtu uint32 `json:"mtu,omitempty"`

Private bool `json:"private"`
AllowSubnets []string `json:"allowSubnets,omitempty"`
Expand Down
37 changes: 21 additions & 16 deletions pkg/daemon/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -216,29 +216,34 @@ func (csh cniServerHandler) handleAdd(req *restful.Request, resp *restful.Respon
}

var mtu int
if providerNetwork != "" && !podSubnet.Spec.LogicalGateway && !podSubnet.Spec.U2OInterconnection {
node, err := csh.Controller.nodesLister.Get(csh.Config.NodeName)
if err != nil {
errMsg := fmt.Errorf("failed to get node %s: %v", csh.Config.NodeName, err)
klog.Error(errMsg)
if err = resp.WriteHeaderAndEntity(http.StatusInternalServerError, request.CniResponse{Err: errMsg.Error()}); err != nil {
klog.Errorf("failed to write response: %v", err)
}
return
}
mtuStr := node.Labels[fmt.Sprintf(util.ProviderNetworkMtuTemplate, providerNetwork)]
if mtuStr != "" {
if mtu, err = strconv.Atoi(mtuStr); err != nil || mtu <= 0 {
errMsg := fmt.Errorf("failed to parse provider network MTU %s: %v", mtuStr, err)

if podSubnet.Spec.Mtu > 0 {
mtu = int(podSubnet.Spec.Mtu)
} else {
if providerNetwork != "" && !podSubnet.Spec.LogicalGateway && !podSubnet.Spec.U2OInterconnection {
node, err := csh.Controller.nodesLister.Get(csh.Config.NodeName)
if err != nil {
errMsg := fmt.Errorf("failed to get node %s: %v", csh.Config.NodeName, err)
klog.Error(errMsg)
if err = resp.WriteHeaderAndEntity(http.StatusInternalServerError, request.CniResponse{Err: errMsg.Error()}); err != nil {
klog.Errorf("failed to write response: %v", err)
}
return
}
mtuStr := node.Labels[fmt.Sprintf(util.ProviderNetworkMtuTemplate, providerNetwork)]
if mtuStr != "" {
if mtu, err = strconv.Atoi(mtuStr); err != nil || mtu <= 0 {
errMsg := fmt.Errorf("failed to parse provider network MTU %s: %v", mtuStr, err)
klog.Error(errMsg)
if err = resp.WriteHeaderAndEntity(http.StatusInternalServerError, request.CniResponse{Err: errMsg.Error()}); err != nil {
klog.Errorf("failed to write response: %v", err)
}
return
}
}
} else {
mtu = csh.Config.MTU
}
} else {
mtu = csh.Config.MTU
}

klog.Infof("create container interface %s mac %s, ip %s, cidr %s, gw %s, custom routes %v", ifName, macAddr, ipAddr, cidr, gw, podRequest.Routes)
Expand Down
4 changes: 4 additions & 0 deletions yamls/crd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,10 @@ spec:
- 253 # default
- 254 # main
- 255 # local
mtu:
type: integer
minimum: 68
maximum: 65535
private:
type: boolean
vlan:
Expand Down

0 comments on commit 445527c

Please sign in to comment.