Skip to content

Commit

Permalink
fix: multus-cni subnet allocation
Browse files Browse the repository at this point in the history
(cherry picked from commit 3bfd82b)
  • Loading branch information
fanriming authored and oilbeater committed Nov 2, 2021
1 parent 1857130 commit 03639a4
Showing 1 changed file with 19 additions and 11 deletions.
30 changes: 19 additions & 11 deletions pkg/controller/pod.go
Original file line number Diff line number Diff line change
Expand Up @@ -960,26 +960,34 @@ func (c *Controller) getPodAttachmentNet(pod *v1.Pod) ([]*kubeovnNet, error) {
// allocate kubeovn network
var providerName string
if util.IsOvnNetwork(netCfg) {
var subnetName string
isDefault := util.IsDefaultNet(pod.Annotations[util.DefaultNetworkAnnotation], attach)
if isDefault {
providerName = util.OvnProvider
} else {
providerName = fmt.Sprintf("%s.%s.ovn", attach.Name, attach.Namespace)
}
for _, subnet := range subnets {
if !isDefault && subnet.Spec.Provider == providerName {
subnetName = subnet.Name
break
subnetName := pod.Annotations[fmt.Sprintf(util.LogicalSwitchAnnotationTemplate, providerName)]
if !isDefault && subnetName == "" {
for _, subnet := range subnets {
if subnet.Spec.Provider == providerName {
subnetName = subnet.Name
break
}
}
}
var subnet *kubeovnv1.Subnet
if subnetName == "" {
subnetName = c.config.DefaultLogicalSwitch
}
subnet, err := c.subnetsLister.Get(subnetName)
if err != nil {
klog.Errorf("failed to get subnet %s, %v", subnetName, err)
return nil, err
subnet, err = c.getPodDefaultSubnet(pod)
if err != nil {
klog.Errorf("failed to pod default subnet, %v", err)
return nil, err
}
} else {
subnet, err = c.subnetsLister.Get(subnetName)
if err != nil {
klog.Errorf("failed to get subnet %s, %v", subnetName, err)
return nil, err
}
}
result = append(result, &kubeovnNet{
Type: providerTypeOriginal,
Expand Down

0 comments on commit 03639a4

Please sign in to comment.