Skip to content

Commit

Permalink
modify kube-ovn as multus-cni problem
Browse files Browse the repository at this point in the history
  • Loading branch information
hongzhen-ma committed Oct 11, 2021
1 parent c1a2988 commit dd36d61
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 15 deletions.
3 changes: 3 additions & 0 deletions pkg/controller/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -511,6 +511,9 @@ func (c *Controller) initAppendPodExternalIds(pod *v1.Pod) error {
}

for _, podNet := range podNets {
if !strings.HasSuffix(podNet.ProviderName, util.OvnProvider) {
continue
}
portName := ovs.PodNameToPortName(pod.Name, pod.Namespace, podNet.ProviderName)
externalIds, err := c.ovnClient.OvnGet("logical_switch_port", portName, "external_ids", "")
if err != nil {
Expand Down
32 changes: 18 additions & 14 deletions pkg/controller/pod.go
Original file line number Diff line number Diff line change
Expand Up @@ -979,6 +979,7 @@ func (c *Controller) getPodAttachmentNet(pod *v1.Pod) ([]*kubeovnNet, error) {
var providerName string
if util.IsOvnNetwork(netCfg) {
allowLiveMigration := false
var subnetName string
isDefault := util.IsDefaultNet(pod.Annotations[util.DefaultNetworkAnnotation], attach)
if isDefault {
providerName = util.OvnProvider
Expand All @@ -988,7 +989,12 @@ func (c *Controller) getPodAttachmentNet(pod *v1.Pod) ([]*kubeovnNet, error) {
allowLiveMigration = true
}
}
subnetName := pod.Annotations[fmt.Sprintf(util.LogicalSwitchAnnotationTemplate, providerName)]
for _, subnet := range subnets {
if !isDefault && subnet.Spec.Provider == providerName {
subnetName = subnet.Name
break
}
}
if subnetName == "" {
subnetName = c.config.DefaultLogicalSwitch
}
Expand All @@ -1004,21 +1010,19 @@ func (c *Controller) getPodAttachmentNet(pod *v1.Pod) ([]*kubeovnNet, error) {
IsDefault: isDefault,
AllowLiveMigration: allowLiveMigration,
})

}

providerName = fmt.Sprintf("%s.%s", attach.Name, attach.Namespace)
for _, subnet := range subnets {
if subnet.Spec.Provider == providerName {
result = append(result, &kubeovnNet{
Type: providerTypeIPAM,
ProviderName: providerName,
Subnet: subnet,
})
break
} else {
providerName = fmt.Sprintf("%s.%s", attach.Name, attach.Namespace)
for _, subnet := range subnets {
if subnet.Spec.Provider == providerName {
result = append(result, &kubeovnNet{
Type: providerTypeIPAM,
ProviderName: providerName,
Subnet: subnet,
})
break
}
}
}

}
return result, nil
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/controller/subnet.go
Original file line number Diff line number Diff line change
Expand Up @@ -1125,7 +1125,7 @@ func calcSubnetStatusIP(subnet *kubeovnv1.Subnet, c *Controller) error {
}

func isOvnSubnet(subnet *kubeovnv1.Subnet) bool {
if subnet.Spec.Provider == util.OvnProvider || subnet.Spec.Provider == "" {
if subnet.Spec.Provider == util.OvnProvider || subnet.Spec.Provider == "" || strings.HasSuffix(subnet.Spec.Provider, "ovn") {
return true
}
return false
Expand Down

0 comments on commit dd36d61

Please sign in to comment.