forked from LaconicNetwork/kompose
Test Headless Services
This commit is contained in:
@@ -282,7 +282,11 @@ func (k *Kubernetes) CreateService(name string, service kobject.ServiceConfig, o
|
||||
return svc
|
||||
}
|
||||
|
||||
// CreateHeadlessService creates a k8s headless service
|
||||
// CreateHeadlessService creates a k8s headless service.
|
||||
// Thi is used for docker-compose services without ports. For such services we can't create regular Kubernetes Service.
|
||||
// and without Service Pods can't find each other using DNS names.
|
||||
// Instead of regular Kubernetes Service we create Headless Service. DNS of such service points directly to Pod IP address.
|
||||
// You can find more about Headless Services in Kubernetes documentation https://kubernetes.io/docs/user-guide/services/#headless-services
|
||||
func (k *Kubernetes) CreateHeadlessService(name string, service kobject.ServiceConfig, objects []runtime.Object) *api.Service {
|
||||
svc := k.InitSvc(name, service)
|
||||
|
||||
|
||||
@@ -24,6 +24,8 @@ import (
|
||||
"path/filepath"
|
||||
|
||||
"github.com/kubernetes-incubator/kompose/pkg/kobject"
|
||||
"github.com/kubernetes-incubator/kompose/pkg/testutils"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
)
|
||||
@@ -161,3 +163,22 @@ func TestIsDir(t *testing.T) {
|
||||
t.Errorf("Error removing the temporary directory during cleanup: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
// TestServiceWithoutPort this tests if Headless Service is created for services without Port.
|
||||
func TestServiceWithoutPort(t *testing.T) {
|
||||
service := kobject.ServiceConfig{
|
||||
ContainerName: "name",
|
||||
Image: "image",
|
||||
}
|
||||
|
||||
komposeObject := kobject.KomposeObject{
|
||||
ServiceConfigs: map[string]kobject.ServiceConfig{"app": service},
|
||||
}
|
||||
k := Kubernetes{}
|
||||
|
||||
objects := k.Transform(komposeObject, kobject.ConvertOptions{CreateD: true, Replicas: 1})
|
||||
if err := testutils.CheckForHeadless(objects); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user