|
|
|
@ -207,36 +207,6 @@ func (h *handler) deployPod(svc *core.Service) error {
|
|
|
|
|
return h.processor.NewDesiredSet(svc, objs).Apply() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (h *handler) resolvePort(svc *core.Service, targetPort core.ServicePort) (int32, error) { |
|
|
|
|
if len(svc.Spec.Selector) == 0 { |
|
|
|
|
return 0, nil |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if targetPort.TargetPort.IntVal != 0 { |
|
|
|
|
return targetPort.TargetPort.IntVal, nil |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
pods, err := h.podCache.List(svc.Namespace, labels.SelectorFromSet(svc.Spec.Selector)) |
|
|
|
|
if err != nil { |
|
|
|
|
return 0, err |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for _, pod := range pods { |
|
|
|
|
if !Ready.IsTrue(pod) { |
|
|
|
|
continue |
|
|
|
|
} |
|
|
|
|
for _, container := range pod.Spec.Containers { |
|
|
|
|
for _, port := range container.Ports { |
|
|
|
|
if port.Name == targetPort.TargetPort.StrVal { |
|
|
|
|
return port.ContainerPort, nil |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return 0, nil |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func (h *handler) newDeployment(svc *core.Service) (*apps.Deployment, error) { |
|
|
|
|
name := fmt.Sprintf("svclb-%s", svc.Name) |
|
|
|
|
zeroInt := intstr.FromInt(0) |
|
|
|
@ -300,19 +270,18 @@ func (h *handler) newDeployment(svc *core.Service) (*apps.Deployment, error) {
|
|
|
|
|
}, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for _, port := range svc.Spec.Ports { |
|
|
|
|
targetPort, err := h.resolvePort(svc, port) |
|
|
|
|
if err != nil { |
|
|
|
|
return nil, err |
|
|
|
|
for i, port := range svc.Spec.Ports { |
|
|
|
|
portName := port.Name |
|
|
|
|
if portName == "" { |
|
|
|
|
portName = fmt.Sprintf("port-%d", i) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
container := core.Container{ |
|
|
|
|
Name: fmt.Sprintf("port-%s", port.Name), |
|
|
|
|
Name: portName, |
|
|
|
|
Image: image, |
|
|
|
|
ImagePullPolicy: core.PullIfNotPresent, |
|
|
|
|
Ports: []core.ContainerPort{ |
|
|
|
|
{ |
|
|
|
|
Name: port.Name, |
|
|
|
|
Name: portName, |
|
|
|
|
ContainerPort: port.Port, |
|
|
|
|
HostPort: port.Port, |
|
|
|
|
}, |
|
|
|
@ -328,7 +297,7 @@ func (h *handler) newDeployment(svc *core.Service) (*apps.Deployment, error) {
|
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
Name: "DEST_PORT", |
|
|
|
|
Value: strconv.Itoa(int(targetPort)), |
|
|
|
|
Value: strconv.Itoa(int(port.Port)), |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
Name: "DEST_IP", |
|
|
|
|