Fix misuse in struct kobject.ServiceConfig.Port (#1423)
This commit is contained in:
@@ -40,7 +40,7 @@ func TestCreateService(t *testing.T) {
|
||||
ContainerName: "name",
|
||||
Image: "image",
|
||||
Environment: []kobject.EnvVar{kobject.EnvVar{Name: "env", Value: "value"}},
|
||||
Port: []kobject.Ports{kobject.Ports{HostPort: 123, ContainerPort: 456, Protocol: corev1.ProtocolTCP}},
|
||||
Port: []kobject.Ports{kobject.Ports{HostPort: 123, ContainerPort: 456, Protocol: string(corev1.ProtocolTCP)}},
|
||||
Command: []string{"cmd"},
|
||||
WorkingDir: "dir",
|
||||
Args: []string{"arg1", "arg2"},
|
||||
@@ -83,7 +83,7 @@ func TestCreateServiceWithMemLimit(t *testing.T) {
|
||||
ContainerName: "name",
|
||||
Image: "image",
|
||||
Environment: []kobject.EnvVar{kobject.EnvVar{Name: "env", Value: "value"}},
|
||||
Port: []kobject.Ports{kobject.Ports{HostPort: 123, ContainerPort: 456, Protocol: corev1.ProtocolTCP}},
|
||||
Port: []kobject.Ports{kobject.Ports{HostPort: 123, ContainerPort: 456, Protocol: string(corev1.ProtocolTCP)}},
|
||||
Command: []string{"cmd"},
|
||||
WorkingDir: "dir",
|
||||
Args: []string{"arg1", "arg2"},
|
||||
@@ -135,7 +135,7 @@ func TestCreateServiceWithCPULimit(t *testing.T) {
|
||||
ContainerName: "name",
|
||||
Image: "image",
|
||||
Environment: []kobject.EnvVar{kobject.EnvVar{Name: "env", Value: "value"}},
|
||||
Port: []kobject.Ports{kobject.Ports{HostPort: 123, ContainerPort: 456, Protocol: corev1.ProtocolTCP}},
|
||||
Port: []kobject.Ports{kobject.Ports{HostPort: 123, ContainerPort: 456, Protocol: string(corev1.ProtocolTCP)}},
|
||||
Command: []string{"cmd"},
|
||||
WorkingDir: "dir",
|
||||
Args: []string{"arg1", "arg2"},
|
||||
@@ -188,7 +188,7 @@ func TestCreateServiceWithServiceUser(t *testing.T) {
|
||||
ContainerName: "name",
|
||||
Image: "image",
|
||||
Environment: []kobject.EnvVar{kobject.EnvVar{Name: "env", Value: "value"}},
|
||||
Port: []kobject.Ports{kobject.Ports{HostPort: 123, ContainerPort: 456, Protocol: corev1.ProtocolTCP}},
|
||||
Port: []kobject.Ports{kobject.Ports{HostPort: 123, ContainerPort: 456, Protocol: string(corev1.ProtocolTCP)}},
|
||||
Command: []string{"cmd"},
|
||||
WorkingDir: "dir",
|
||||
Args: []string{"arg1", "arg2"},
|
||||
@@ -231,7 +231,7 @@ func TestTransformWithPid(t *testing.T) {
|
||||
ContainerName: "name",
|
||||
Image: "image",
|
||||
Environment: []kobject.EnvVar{kobject.EnvVar{Name: "env", Value: "value"}},
|
||||
Port: []kobject.Ports{kobject.Ports{HostPort: 123, ContainerPort: 456, Protocol: corev1.ProtocolTCP}},
|
||||
Port: []kobject.Ports{kobject.Ports{HostPort: 123, ContainerPort: 456, Protocol: string(corev1.ProtocolTCP)}},
|
||||
Command: []string{"cmd"},
|
||||
WorkingDir: "dir",
|
||||
Args: []string{"arg1", "arg2"},
|
||||
@@ -267,7 +267,7 @@ func TestTransformWithInvalidPid(t *testing.T) {
|
||||
ContainerName: "name",
|
||||
Image: "image",
|
||||
Environment: []kobject.EnvVar{kobject.EnvVar{Name: "env", Value: "value"}},
|
||||
Port: []kobject.Ports{kobject.Ports{HostPort: 123, ContainerPort: 456, Protocol: corev1.ProtocolTCP}},
|
||||
Port: []kobject.Ports{kobject.Ports{HostPort: 123, ContainerPort: 456, Protocol: string(corev1.ProtocolTCP)}},
|
||||
Command: []string{"cmd"},
|
||||
WorkingDir: "dir",
|
||||
Args: []string{"arg1", "arg2"},
|
||||
|
||||
@@ -574,23 +574,19 @@ func ConfigPorts(name string, service kobject.ServiceConfig) []api.ContainerPort
|
||||
exist := map[string]bool{}
|
||||
for _, port := range service.Port {
|
||||
// temp use as an id
|
||||
if exist[string(port.ContainerPort)+string(port.Protocol)] {
|
||||
if exist[string(port.ContainerPort)+port.Protocol] {
|
||||
continue
|
||||
}
|
||||
// If the default is already TCP, no need to include it.
|
||||
if port.Protocol == api.ProtocolTCP {
|
||||
ports = append(ports, api.ContainerPort{
|
||||
ContainerPort: port.ContainerPort,
|
||||
HostIP: port.HostIP,
|
||||
})
|
||||
} else {
|
||||
ports = append(ports, api.ContainerPort{
|
||||
ContainerPort: port.ContainerPort,
|
||||
Protocol: port.Protocol,
|
||||
HostIP: port.HostIP,
|
||||
})
|
||||
containerPort := api.ContainerPort{
|
||||
ContainerPort: port.ContainerPort,
|
||||
HostIP: port.HostIP,
|
||||
}
|
||||
exist[string(port.ContainerPort)+string(port.Protocol)] = true
|
||||
// If the default is already TCP, no need to include protocol.
|
||||
if protocol := api.Protocol(port.Protocol); protocol != api.ProtocolTCP {
|
||||
containerPort.Protocol = protocol
|
||||
}
|
||||
ports = append(ports, containerPort)
|
||||
exist[string(port.ContainerPort)+port.Protocol] = true
|
||||
}
|
||||
|
||||
return ports
|
||||
@@ -613,14 +609,11 @@ func (k *Kubernetes) ConfigLBServicePorts(name string, service kobject.ServiceCo
|
||||
TargetPort: targetPort,
|
||||
}
|
||||
|
||||
// If the default is already TCP, no need to include it.
|
||||
if port.Protocol != api.ProtocolTCP {
|
||||
servicePort.Protocol = port.Protocol
|
||||
}
|
||||
|
||||
if port.Protocol == api.ProtocolTCP {
|
||||
if protocol := api.Protocol(port.Protocol); protocol == api.ProtocolTCP {
|
||||
// If the default is already TCP, no need to include protocol.
|
||||
tcpPorts = append(tcpPorts, servicePort)
|
||||
} else {
|
||||
servicePort.Protocol = protocol
|
||||
udpPorts = append(udpPorts, servicePort)
|
||||
}
|
||||
}
|
||||
@@ -649,7 +642,7 @@ func (k *Kubernetes) ConfigServicePorts(name string, service kobject.ServiceConf
|
||||
if service.ServiceType == string(api.ServiceTypeLoadBalancer) {
|
||||
log.Fatalf("Service %s of type LoadBalancer cannot use TCP and UDP for the same port", name)
|
||||
}
|
||||
name = fmt.Sprintf("%s-%s", name, strings.ToLower(string(port.Protocol)))
|
||||
name = fmt.Sprintf("%s-%s", name, strings.ToLower(port.Protocol))
|
||||
}
|
||||
|
||||
servicePort = api.ServicePort{
|
||||
@@ -662,9 +655,9 @@ func (k *Kubernetes) ConfigServicePorts(name string, service kobject.ServiceConf
|
||||
servicePort.NodePort = service.NodePortPort
|
||||
}
|
||||
|
||||
// If the default is already TCP, no need to include it.
|
||||
if port.Protocol != api.ProtocolTCP {
|
||||
servicePort.Protocol = port.Protocol
|
||||
// If the default is already TCP, no need to include protocol.
|
||||
if protocol := api.Protocol(port.Protocol); protocol != api.ProtocolTCP {
|
||||
servicePort.Protocol = protocol
|
||||
}
|
||||
|
||||
servicePorts = append(servicePorts, servicePort)
|
||||
|
||||
@@ -44,7 +44,7 @@ func newServiceConfig() kobject.ServiceConfig {
|
||||
ContainerName: "name",
|
||||
Image: "image",
|
||||
Environment: []kobject.EnvVar{kobject.EnvVar{Name: "env", Value: "value"}},
|
||||
Port: []kobject.Ports{kobject.Ports{HostPort: 123, ContainerPort: 456}, kobject.Ports{HostPort: 123, ContainerPort: 456, Protocol: api.ProtocolUDP}},
|
||||
Port: []kobject.Ports{kobject.Ports{HostPort: 123, ContainerPort: 456}, kobject.Ports{HostPort: 123, ContainerPort: 456, Protocol: string(api.ProtocolUDP)}},
|
||||
Command: []string{"cmd"},
|
||||
WorkingDir: "dir",
|
||||
Args: []string{"arg1", "arg2"},
|
||||
@@ -115,7 +115,7 @@ func equalPorts(kobjectPorts []kobject.Ports, k8sPorts []api.ContainerPort) bool
|
||||
for _, k8sPort := range k8sPorts {
|
||||
// FIXME: HostPort should be copied to container port
|
||||
//if port.HostPort == k8sPort.HostPort && port.Protocol == k8sPort.Protocol && port.ContainerPort == k8sPort.ContainerPort {
|
||||
if port.Protocol == k8sPort.Protocol && port.ContainerPort == k8sPort.ContainerPort {
|
||||
if port.Protocol == string(k8sPort.Protocol) && port.ContainerPort == k8sPort.ContainerPort {
|
||||
found = true
|
||||
}
|
||||
// Name and HostIp shouldn't be set
|
||||
|
||||
@@ -37,7 +37,7 @@ func newServiceConfig() kobject.ServiceConfig {
|
||||
ContainerName: "myfoobarname",
|
||||
Image: "image",
|
||||
Environment: []kobject.EnvVar{kobject.EnvVar{Name: "env", Value: "value"}},
|
||||
Port: []kobject.Ports{kobject.Ports{HostPort: 123, ContainerPort: 456, Protocol: corev1.ProtocolTCP}},
|
||||
Port: []kobject.Ports{kobject.Ports{HostPort: 123, ContainerPort: 456, Protocol: string(corev1.ProtocolTCP)}},
|
||||
Command: []string{"cmd"},
|
||||
WorkingDir: "dir",
|
||||
Args: []string{"arg1", "arg2"},
|
||||
|
||||
Reference in New Issue
Block a user