Skip to content

Commit

Permalink
refresh nat gw image before using it (#2743)
Browse files Browse the repository at this point in the history
  • Loading branch information
bobz965 committed May 4, 2023
1 parent 353df49 commit d1711ac
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 15 deletions.
4 changes: 0 additions & 4 deletions pkg/controller/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -1011,10 +1011,6 @@ func (c *Controller) startWorkers(ctx context.Context) {
c.resyncExternalGateway()
}, time.Second, ctx.Done())

go wait.Until(func() {
c.resyncVpcNatConfig()
}, time.Second, ctx.Done())

go wait.Until(func() {
c.resyncVpcNatGwConfig()
}, time.Second, ctx.Done())
Expand Down
4 changes: 4 additions & 0 deletions pkg/controller/service_lb.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,10 @@ func (c *Controller) checkAttachNetwork(svc *corev1.Service) error {
}

func (c *Controller) genLbSvcDeployment(svc *corev1.Service) (dp *v1.Deployment) {
if err := c.resyncVpcNatImage(); err != nil {
klog.Errorf("failed to resync vpc nat config, err: %v", err)
return nil
}
replicas := int32(1)
name := genLbSvcDpName(svc.Name)
allowPrivilegeEscalation := true
Expand Down
5 changes: 4 additions & 1 deletion pkg/controller/vpc_dns.go
Original file line number Diff line number Diff line change
Expand Up @@ -391,7 +391,10 @@ func (c *Controller) genVpcDnsDeployment(vpcDns *kubeovnv1.VpcDns, oldDeploy *v1
klog.Errorf("failed to get default subnet %v", err)
return nil, err
}

if err = c.resyncVpcNatImage(); err != nil {
klog.Errorf("failed to resync vpc nat config, err: %v", err)
return nil, err
}
setVpcDnsRoute(dep, defaultSubnet.Spec.Gateway)
return dep, nil
}
Expand Down
4 changes: 4 additions & 0 deletions pkg/controller/vpc_lb.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,10 @@ func (c *Controller) deleteVpcLb(vpc *kubeovnv1.Vpc) error {
}

func (c *Controller) genVpcLbDeployment(vpc *kubeovnv1.Vpc) (*v1.Deployment, error) {
if err := c.resyncVpcNatImage(); err != nil {
klog.Errorf("failed to resync vpc nat config, err: %v", err)
return nil, err
}
if len(vpc.Status.Subnets) == 0 {
return nil, nil
}
Expand Down
19 changes: 10 additions & 9 deletions pkg/controller/vpc_nat.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package controller

import (
k8serrors "k8s.io/apimachinery/pkg/api/errors"
"fmt"

"k8s.io/klog/v2"

"github.com/kubeovn/kube-ovn/pkg/util"
Expand All @@ -11,19 +12,19 @@ var (
vpcNatImage = ""
)

func (c *Controller) resyncVpcNatConfig() {
func (c *Controller) resyncVpcNatImage() error {
cm, err := c.configMapsLister.ConfigMaps(c.config.PodNamespace).Get(util.VpcNatConfig)
if err != nil {
if k8serrors.IsNotFound(err) {
return
}
klog.Errorf("failed to get ovn-vpc-nat-config, %v", err)
return
err = fmt.Errorf("failed to get ovn-vpc-nat-config, %v", err)
klog.Error(err)
return err
}
image, exist := cm.Data["image"]
if !exist {
klog.Errorf("failed to get 'image' at ovn-vpc-nat-config")
return
err = fmt.Errorf("%s should have image field", util.VpcNatConfig)
klog.Error(err)
return err
}
vpcNatImage = image
return nil
}
5 changes: 4 additions & 1 deletion pkg/controller/vpc_nat_gateway.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,10 @@ func (c *Controller) resyncVpcNatGwConfig() {
klog.Errorf("failed to get vpc nat gateway, %v", err)
return
}
vpcNatImage = cm.Data["image"]
if err = c.resyncVpcNatImage(); err != nil {
klog.Errorf("failed to resync vpc nat config, err: %v", err)
return
}
vpcNatEnabled = "true"
VpcNatCmVersion = cm.ResourceVersion
for _, gw := range gws {
Expand Down

0 comments on commit d1711ac

Please sign in to comment.