Skip to content

Commit

Permalink
potential SC bugfix
Browse files Browse the repository at this point in the history
  • Loading branch information
singholt committed Dec 12, 2022
1 parent 690ba00 commit 17f6d7c
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions agent/api/task/task.go
Original file line number Diff line number Diff line change
Expand Up @@ -2338,6 +2338,8 @@ func (task *Task) dockerPortMap(container *apicontainer.Container) (nat.PortMap,
dockerPortMap := nat.PortMap{}
scContainer := task.GetServiceConnectContainer()
containerToCheck := container
containerPortSet := make(map[int]struct{})
containerPortRangeMap := make(map[string]string)
if task.IsServiceConnectEnabled() && task.IsNetworkModeBridge() {
if container.Type == apicontainer.ContainerCNIPause {
// we will create bindings for task containers (including both customer containers and SC Appnet container)
Expand All @@ -2352,12 +2354,15 @@ func (task *Task) dockerPortMap(container *apicontainer.Container) (nat.PortMap,
// create bindings for all ingress listener ports
// no need to create binding for egress listener port as it won't be access from host level or from outside
for _, ic := range task.ServiceConnectConfig.IngressConfig {
dockerPort := nat.Port(strconv.Itoa(int(ic.ListenerPort))) + "/tcp"
listenerPortInt := int(ic.ListenerPort)
dockerPort := nat.Port(strconv.Itoa(listenerPortInt)) + "/tcp"
hostPort := 0 // default bridge-mode SC experience - host port will be an ephemeral port assigned by docker
if ic.HostPort != nil { // non-default bridge-mode SC experience - host port specified by customer
hostPort = int(*ic.HostPort)
}
dockerPortMap[dockerPort] = append(dockerPortMap[dockerPort], nat.PortBinding{HostPort: strconv.Itoa(hostPort)})
// append non-range, singular container port to the containerPortSet
containerPortSet[listenerPortInt] = struct{}{}
}
return dockerPortMap, nil
}
Expand All @@ -2370,8 +2375,6 @@ func (task *Task) dockerPortMap(container *apicontainer.Container) (nat.PortMap,
}
}

containerPortSet := make(map[int]struct{})
containerPortRangeMap := make(map[string]string)
for _, portBinding := range containerToCheck.Ports {
// for each port binding config, either one of containerPort or containerPortRange is set
if portBinding.ContainerPort != 0 {
Expand Down

0 comments on commit 17f6d7c

Please sign in to comment.