From 8a2372668b00eb715c1e38adeb7f1f1237ae0d9e Mon Sep 17 00:00:00 2001 From: hwchiu Date: Thu, 19 Jul 2018 07:04:31 +0000 Subject: [PATCH] Support the vlan tag for client --- src/entity/pod.go | 2 +- src/pod/pod.go | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/entity/pod.go b/src/entity/pod.go index 78ef6876..9d6341a5 100644 --- a/src/entity/pod.go +++ b/src/entity/pod.go @@ -19,7 +19,7 @@ type Container struct { type PodNetwork struct { Name string `bson:"name" json:"name"` IfName string `bson:"ifName" json:"ifName"` - VlanTag int `bson:"vlanTag" json:"vlanTag"` + VlanTag *int `bson:"vlanTag" json:"vlanTag"` IPAddress string `bson:"ipAddress json:"ipAddress"` Netmask string `bson:"netmask" json:"netmask"` BridgeName string `bson:"bridgeName" json:"bridgeName"` //its from the entity.Network entity diff --git a/src/pod/pod.go b/src/pod/pod.go index 64f10d6a..8c6c847d 100644 --- a/src/pod/pod.go +++ b/src/pod/pod.go @@ -3,6 +3,7 @@ package pod import ( "fmt" "regexp" + "strconv" "github.com/linkernetworks/mongo" "github.com/linkernetworks/vortex/src/entity" @@ -106,15 +107,20 @@ func generateNodeLabels(networks []entity.Network) []string { return utils.Intersections(totalNames) } -func generateClientCommand(network entity.PodNetwork) []string { +func generateClientCommand(network entity.PodNetwork) (command []string) { ip := utils.IPToCIDR(network.IPAddress, network.Netmask) - return []string{ + command = []string{ "-s=unix:///tmp/vortex.sock", "-b=" + network.BridgeName, "-n=" + network.IfName, "-i=" + ip, } + + if network.VlanTag != nil { + command = append(command, "-v="+strconv.Itoa(*network.VlanTag)) + } + return } func generateInitContainer(networks []entity.PodNetwork) ([]corev1.Container, error) {