Replace underscores with dashes while rendering container names

Kubernetes container names must match the regex [a-z0-9]([-a-z0-9]*[a-z0-9])?
This excludes underscores, which is common in container names in compose.
This commit is contained in:
Abhishek Chanda 2017-05-16 17:34:26 +00:00
parent 7e785bb31f
commit 9ebfa9e293

View File

@ -317,7 +317,11 @@ func (c *Compose) LoadFile(files []string) (kobject.KomposeObject, error) {
serviceConfig := kobject.ServiceConfig{} serviceConfig := kobject.ServiceConfig{}
serviceConfig.Image = composeServiceConfig.Image serviceConfig.Image = composeServiceConfig.Image
serviceConfig.Build = composeServiceConfig.Build.Context serviceConfig.Build = composeServiceConfig.Build.Context
serviceConfig.ContainerName = composeServiceConfig.ContainerName newName := normalizeServiceNames(composeServiceConfig.ContainerName)
serviceConfig.ContainerName = newName
if newName != composeServiceConfig.ContainerName {
log.Infof("Container name in service %q has been changed from %q to %q", name, composeServiceConfig.ContainerName, newName)
}
serviceConfig.Command = composeServiceConfig.Entrypoint serviceConfig.Command = composeServiceConfig.Entrypoint
serviceConfig.Args = composeServiceConfig.Command serviceConfig.Args = composeServiceConfig.Command
serviceConfig.Dockerfile = composeServiceConfig.Build.Dockerfile serviceConfig.Dockerfile = composeServiceConfig.Build.Dockerfile