diff --git a/cncd/pipeline/pipeline/backend/kubernetes/kubernetes.go b/cncd/pipeline/pipeline/backend/kubernetes/kubernetes.go index a57dabf01..549801ec3 100644 --- a/cncd/pipeline/pipeline/backend/kubernetes/kubernetes.go +++ b/cncd/pipeline/pipeline/backend/kubernetes/kubernetes.go @@ -72,18 +72,13 @@ func (e *engine) Setup(ctx context.Context, conf *backend.Config) error { if stage.Alias == "services" { for _, step := range stage.Steps { e.logs.WriteString("Creating service\n") - pod := Pod(e.namespace, step) - var svc *v1.Service for _, n := range step.Networks { if len(n.Aliases) > 0 { - svc = Service(e.namespace, n.Aliases[0], pod.Name, step.Ports) + svc = Service(e.namespace, n.Aliases[0], podName(step), step.Ports) } } - if _, err := e.kubeClient.CoreV1().Pods(e.namespace).Create(pod); err != nil { - return err - } if svc, err := e.kubeClient.CoreV1().Services(e.namespace).Create(svc); err != nil { return err } else { @@ -108,17 +103,6 @@ func (e *engine) Setup(ctx context.Context, conf *backend.Config) error { func (e *engine) Exec(ctx context.Context, step *backend.Step) error { e.logs.WriteString("Creating pod\n") pod := Pod(e.namespace, step) - - var svc *v1.Service - for _, n := range step.Networks { - if len(n.Aliases) > 0 { - svc = Service(e.namespace, n.Aliases[0], pod.Name, step.Ports) - } - } - if svc != nil { - return nil // Pods with services are created already in Setup() - } - _, err := e.kubeClient.CoreV1().Pods(e.namespace).Create(pod) return err } @@ -251,17 +235,22 @@ func (e *engine) Destroy(ctx context.Context, conf *backend.Config) error { for _, stage := range conf.Stages { for _, step := range stage.Steps { + e.logs.WriteString("Deleting pod\n") if err := e.kubeClient.CoreV1().Pods(e.namespace).Delete(podName(step), deleteOpts); err != nil { return err } + } + } - for _, n := range step.Networks { - svc := Service(e.namespace, n.Aliases[0], step.Alias, step.Ports) - if svc == nil { - continue - } - if err := e.kubeClient.CoreV1().Services(e.namespace).Delete(svc.Name, deleteOpts); err != nil { - return err + for _, stage := range conf.Stages { + if stage.Alias == "services" { + for _, step := range stage.Steps { + e.logs.WriteString("Deleting service\n") + for _, n := range step.Networks { + svc := Service(e.namespace, n.Aliases[0], step.Alias, step.Ports) + if err := e.kubeClient.CoreV1().Services(e.namespace).Delete(svc.Name, deleteOpts); err != nil { + return err + } } } } diff --git a/cncd/pipeline/pipeline/backend/kubernetes/services.go b/cncd/pipeline/pipeline/backend/kubernetes/services.go index 6ff2e5206..3a2237e18 100644 --- a/cncd/pipeline/pipeline/backend/kubernetes/services.go +++ b/cncd/pipeline/pipeline/backend/kubernetes/services.go @@ -7,11 +7,6 @@ import ( ) func Service(namespace, name, podName string, ports []int) *v1.Service { - // We don't need a service, if we don't have ports - if len(ports) == 0 { - return nil - } - var svcPorts []v1.ServicePort for _, p := range ports { svcPorts = append(svcPorts, v1.ServicePort{ diff --git a/cncd/pipeline/pipeline/backend/kubernetes/services_test.go b/cncd/pipeline/pipeline/backend/kubernetes/services_test.go index ac8e57e28..ded872523 100644 --- a/cncd/pipeline/pipeline/backend/kubernetes/services_test.go +++ b/cncd/pipeline/pipeline/backend/kubernetes/services_test.go @@ -8,9 +8,6 @@ import ( ) func TestService(t *testing.T) { - s := Service("foo", "bar", "baz", []int{}) - assert.Nil(t, s) - expected := ` { "metadata": { @@ -43,7 +40,7 @@ func TestService(t *testing.T) { } }` - s = Service("foo", "bar", "baz", []int{1, 2, 3}) + s := Service("foo", "bar", "baz", []int{1, 2, 3}) j, err := json.Marshal(s) assert.Nil(t, err) assert.JSONEq(t, expected, string(j))