From 54b8da3a84f65077202b3825e8084c1afde7cc23 Mon Sep 17 00:00:00 2001
From: Lorenz Brun <lorenz@dolansoft.org>
Date: Wed, 20 Jun 2018 14:48:13 +0200
Subject: [PATCH] Add service resolution support to K8s executor

---
 executors/kubernetes/executor_kubernetes.go | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/executors/kubernetes/executor_kubernetes.go b/executors/kubernetes/executor_kubernetes.go
index 89bd0c409..a753055a6 100644
--- a/executors/kubernetes/executor_kubernetes.go
+++ b/executors/kubernetes/executor_kubernetes.go
@@ -432,9 +432,17 @@ func (s *executor) setupCredentials() error {
 
 func (s *executor) setupBuildPod() error {
 	services := make([]api.Container, len(s.options.Services))
+	var serviceAliases api.HostAlias
+	serviceAliases.Hostnames = make([]string, len(s.options.Services))
+	serviceAliases.IP = "127.0.0.1"
 	for i, service := range s.options.Services {
 		resolvedImage := s.Build.GetAllVariables().ExpandValue(service.Name)
 		services[i] = s.buildContainer(fmt.Sprintf("svc-%d", i), resolvedImage, service, s.serviceRequests, s.serviceLimits)
+		if service.Alias != "" {
+			serviceAliases.Hostnames[i] = service.Alias
+		} else {
+			serviceAliases.Hostnames[i] = service.Name
+		}
 	}
 
 	labels := make(map[string]string)
@@ -471,6 +479,7 @@ func (s *executor) setupBuildPod() error {
 			ServiceAccountName: s.configurationOverwrites.serviceAccount,
 			RestartPolicy:      api.RestartPolicyNever,
 			NodeSelector:       s.Config.Kubernetes.NodeSelector,
+			HostAliases:        []api.HostAlias{serviceAliases},
 			Containers: append([]api.Container{
 				// TODO use the build and helper template here
 				s.buildContainer("build", buildImage, s.options.Image, s.buildRequests, s.buildLimits, s.BuildShell.DockerCommand...),
-- 
GitLab