Add headless service type label

Also remove the relation between restart and service create
This commit is contained in:
Hang Yan
2018-04-15 00:23:48 +08:00
parent 25f8ba42f9
commit f3412a7399
54 changed files with 389 additions and 801 deletions
+7 -2
View File
@@ -301,7 +301,12 @@ func (k *Kubernetes) CreateService(name string, service kobject.ServiceConfig, o
servicePorts := k.ConfigServicePorts(name, service)
svc.Spec.Ports = servicePorts
svc.Spec.Type = api.ServiceType(service.ServiceType)
if service.ServiceType == "Headless" {
svc.Spec.Type = api.ServiceTypeClusterIP
svc.Spec.ClusterIP = "None"
} else {
svc.Spec.Type = api.ServiceType(service.ServiceType)
}
// Configure annotations
annotations := transformer.ConfigAnnotations(service)
@@ -311,7 +316,7 @@ func (k *Kubernetes) CreateService(name string, service kobject.ServiceConfig, o
}
// 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.
// This 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
@@ -364,6 +364,7 @@ func TestServiceWithoutPort(t *testing.T) {
service := kobject.ServiceConfig{
ContainerName: "name",
Image: "image",
ServiceType: "Headless",
}
komposeObject := kobject.KomposeObject{
+10 -8
View File
@@ -725,15 +725,17 @@ func (k *Kubernetes) Transform(komposeObject kobject.KomposeObject, opt kobject.
objects = append(objects, pod)
} else {
objects = k.CreateKubernetesObjects(name, service, opt)
// If ports not provided in configuration we will not make service
if k.PortsExist(name, service) {
svc := k.CreateService(name, service, objects)
objects = append(objects, svc)
}
if service.ExposeService != "" {
objects = append(objects, k.initIngress(name, service, svc.Spec.Ports[0].Port))
}
} else {
if k.PortsExist(name, service) {
svc := k.CreateService(name, service, objects)
objects = append(objects, svc)
if service.ExposeService != "" {
objects = append(objects, k.initIngress(name, service, svc.Spec.Ports[0].Port))
}
} else {
if service.ServiceType == "Headless" {
svc := k.CreateHeadlessService(name, service, objects)
objects = append(objects, svc)
}