Skip to content

Commit

Permalink
Add new arg to configure ns of ExternalGatewayConfig
Browse files Browse the repository at this point in the history
  • Loading branch information
chestack committed Jan 7, 2022
1 parent 6d07efc commit 6318d00
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 39 deletions.
5 changes: 5 additions & 0 deletions pkg/controller/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@ type Configuration struct {
EnableLb bool
EnableNP bool
EnableExternalVpc bool

ExternalGatewayConfigNS string
}

// ParseFlags parses cmd args then init kubeclient and conf
Expand Down Expand Up @@ -111,6 +113,8 @@ func ParseFlags() (*Configuration, error) {
argEnableLb = pflag.Bool("enable-lb", true, "Enable load balancer")
argEnableNP = pflag.Bool("enable-np", true, "Enable network policy support")
argEnableExternalVpc = pflag.Bool("enable-external-vpc", true, "Enable external vpc support")

argExternalGatewayConfigNS = pflag.String("external-gateway-config-ns", "kube-system", "The namespace of configmap external-gateway-config, default: kube-system")
)

klogFlags := flag.NewFlagSet("klog", flag.ExitOnError)
Expand Down Expand Up @@ -164,6 +168,7 @@ func ParseFlags() (*Configuration, error) {
EnableLb: *argEnableLb,
EnableNP: *argEnableNP,
EnableExternalVpc: *argEnableExternalVpc,
ExternalGatewayConfigNS: *argExternalGatewayConfigNS,
}

if config.NetworkType == util.NetworkTypeVlan && config.DefaultHostInterface == "" {
Expand Down
2 changes: 1 addition & 1 deletion pkg/controller/external-gw.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ var (
)

func (c *Controller) resyncExternalGateway() {
cm, err := c.configMapsLister.ConfigMaps(c.config.PodNamespace).Get(util.ExternalGatewayConfig)
cm, err := c.configMapsLister.ConfigMaps(c.config.ExternalGatewayConfigNS).Get(util.ExternalGatewayConfig)
if err != nil && !k8serrors.IsNotFound(err) {
klog.Errorf("failed to get ovn-external-gw-config, %v", err)
return
Expand Down
2 changes: 1 addition & 1 deletion pkg/controller/pod.go
Original file line number Diff line number Diff line change
Expand Up @@ -732,7 +732,7 @@ func (c *Controller) handleUpdatePod(key string) error {

if podIP != "" && subnet.Spec.Vlan == "" && subnet.Spec.Vpc == util.DefaultVpc {
if pod.Annotations[util.EipAnnotation] != "" || pod.Annotations[util.SnatAnnotation] != "" {
cm, err := c.configMapsLister.ConfigMaps("kube-system").Get(util.ExternalGatewayConfig)
cm, err := c.configMapsLister.ConfigMaps(c.config.ExternalGatewayConfigNS).Get(util.ExternalGatewayConfig)
if err != nil {
klog.Errorf("failed to get ex-gateway config, %v", err)
return err
Expand Down
75 changes: 39 additions & 36 deletions pkg/daemon/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,24 +26,25 @@ import (

// Configuration is the daemon conf
type Configuration struct {
Iface string
MTU int
MSS int
EnableMirror bool
MirrorNic string
BindSocket string
OvsSocket string
KubeConfigFile string
KubeClient kubernetes.Interface
KubeOvnClient clientset.Interface
NodeName string
ServiceClusterIPRange string
NodeLocalDnsIP string
EncapChecksum bool
PprofPort int
NetworkType string
DefaultProviderName string
DefaultInterfaceName string
Iface string
MTU int
MSS int
EnableMirror bool
MirrorNic string
BindSocket string
OvsSocket string
KubeConfigFile string
KubeClient kubernetes.Interface
KubeOvnClient clientset.Interface
NodeName string
ServiceClusterIPRange string
NodeLocalDnsIP string
EncapChecksum bool
PprofPort int
NetworkType string
DefaultProviderName string
DefaultInterfaceName string
ExternalGatewayConfigNS string
}

// ParseFlags will parse cmd args then init kubeClient and configuration
Expand All @@ -62,9 +63,10 @@ func ParseFlags() (*Configuration, error) {
argEncapChecksum = pflag.Bool("encap-checksum", true, "Enable checksum")
argPprofPort = pflag.Int("pprof-port", 10665, "The port to get profiling data")

argsNetworkType = pflag.String("network-type", "geneve", "The ovn network type")
argsDefaultProviderName = pflag.String("default-provider-name", "provider", "The vlan or vxlan type default provider interface name")
argsDefaultInterfaceName = pflag.String("default-interface-name", "", "The default host interface name in the vlan/vxlan type")
argsNetworkType = pflag.String("network-type", "geneve", "The ovn network type")
argsDefaultProviderName = pflag.String("default-provider-name", "provider", "The vlan or vxlan type default provider interface name")
argsDefaultInterfaceName = pflag.String("default-interface-name", "", "The default host interface name in the vlan/vxlan type")
argExternalGatewayConfigNS = pflag.String("external-gateway-config-ns", "kube-system", "The namespace of configmap external-gateway-config, default: kube-system")
)

// mute info log for ipset lib
Expand Down Expand Up @@ -94,21 +96,22 @@ func ParseFlags() (*Configuration, error) {
return nil, fmt.Errorf("env KUBE_NODE_NAME not exists")
}
config := &Configuration{
Iface: *argIface,
MTU: *argMTU,
EnableMirror: *argEnableMirror,
MirrorNic: *argMirrorNic,
BindSocket: *argBindSocket,
OvsSocket: *argOvsSocket,
KubeConfigFile: *argKubeConfigFile,
PprofPort: *argPprofPort,
NodeName: nodeName,
ServiceClusterIPRange: *argServiceClusterIPRange,
NodeLocalDnsIP: *argNodeLocalDnsIP,
EncapChecksum: *argEncapChecksum,
NetworkType: *argsNetworkType,
DefaultProviderName: *argsDefaultProviderName,
DefaultInterfaceName: *argsDefaultInterfaceName,
Iface: *argIface,
MTU: *argMTU,
EnableMirror: *argEnableMirror,
MirrorNic: *argMirrorNic,
BindSocket: *argBindSocket,
OvsSocket: *argOvsSocket,
KubeConfigFile: *argKubeConfigFile,
PprofPort: *argPprofPort,
NodeName: nodeName,
ServiceClusterIPRange: *argServiceClusterIPRange,
NodeLocalDnsIP: *argNodeLocalDnsIP,
EncapChecksum: *argEncapChecksum,
NetworkType: *argsNetworkType,
DefaultProviderName: *argsDefaultProviderName,
DefaultInterfaceName: *argsDefaultInterfaceName,
ExternalGatewayConfigNS: *argExternalGatewayConfigNS,
}

if err := config.initKubeClient(); err != nil {
Expand Down
2 changes: 1 addition & 1 deletion pkg/daemon/gateway.go
Original file line number Diff line number Diff line change
Expand Up @@ -620,7 +620,7 @@ func (c *Controller) setExGateway() error {
}
enable := node.Labels[util.ExGatewayLabel]
if enable == "true" {
cm, err := c.config.KubeClient.CoreV1().ConfigMaps("kube-system").Get(context.Background(), util.ExternalGatewayConfig, metav1.GetOptions{})
cm, err := c.config.KubeClient.CoreV1().ConfigMaps(c.config.ExternalGatewayConfigNS).Get(context.Background(), util.ExternalGatewayConfig, metav1.GetOptions{})
if err != nil {
klog.Errorf("failed to get ovn-external-gw-config, %v", err)
return err
Expand Down

0 comments on commit 6318d00

Please sign in to comment.