Fix container name (#1528)

* fix: update get container name function
* test: add a test for the introduced fix
This commit is contained in:
AhmedGrati
2022-11-13 21:33:47 +08:00
committed by GitHub
parent 849c229aad
commit fd7b751564
3 changed files with 47 additions and 21 deletions
+2 -2
View File
@@ -890,9 +890,9 @@ func FormatContainerName(name string) string {
func GetContainerName(service kobject.ServiceConfig) string { func GetContainerName(service kobject.ServiceConfig) string {
name := service.Name name := service.Name
if len(service.ContainerName) > 0 { if len(service.ContainerName) > 0 {
name = FormatContainerName(service.ContainerName) name = service.ContainerName
} }
return name return FormatContainerName(name)
} }
// FormatResourceName generate a valid k8s resource name // FormatResourceName generate a valid k8s resource name
@@ -571,3 +571,29 @@ func TestServiceWithServiceAccount(t *testing.T) {
} }
} }
} }
func TestCreateServiceWithSpecialName(t *testing.T) {
service := kobject.ServiceConfig{
ContainerName: "front_end",
Image: "nginx",
}
// An example object generated via k8s runtime.Objects()
komposeObject := kobject.KomposeObject{
ServiceConfigs: map[string]kobject.ServiceConfig{"app": service},
}
k := Kubernetes{}
objects, err := k.Transform(komposeObject, kobject.ConvertOptions{CreateD: true, Replicas: 3})
if err != nil {
t.Error(errors.Wrap(err, "k.Transform failed"))
}
expectedContainerName := "front-end"
for _, obj := range objects {
if deploy, ok := obj.(*appsv1.Deployment); ok {
containerName := deploy.Spec.Template.Spec.Containers[0].Name
if containerName != "front-end" {
t.Errorf("Error while transforming container name. Expected %s Got %s", expectedContainerName, containerName)
}
}
}
}