Skip to content

Commit

Permalink
Propagate underscores into valid name.
Browse files Browse the repository at this point in the history
Now we can provide service name with _ in docker-compose files and they will by converted as - in the generated artifacts by kompose eg, if the service name in docker-compose file is foo_bar then it will be converted into foo-bar in the generated artifacts
  • Loading branch information
procrypt committed Mar 24, 2017
1 parent 3ac6d9a commit 8d81b48
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 24 deletions.
2 changes: 1 addition & 1 deletion pkg/loader/compose/compose.go
Original file line number Diff line number Diff line change
Expand Up @@ -393,6 +393,6 @@ func handleServiceType(ServiceType string) (string, error) {
}
}

func normalizeServiceNames(svcName string) string {
func NormalizeServiceNames(svcName string) string {
return strings.Replace(svcName, "_", "-", -1)
}
3 changes: 2 additions & 1 deletion pkg/transformer/kubernetes/k8sutils.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ import (
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/runtime"

"github.com/kubernetes-incubator/kompose/pkg/loader/compose"
deployapi "github.com/openshift/origin/pkg/deploy/api"
"github.com/pkg/errors"
"k8s.io/kubernetes/pkg/api/resource"
Expand Down Expand Up @@ -407,7 +408,7 @@ func (k *Kubernetes) UpdateKubernetesObjects(name string, service kobject.Servic
}

template.Spec.Containers[0].Ports = ports
template.ObjectMeta.Labels = transformer.ConfigLabels(name)
template.ObjectMeta.Labels = transformer.ConfigLabels(compose.NormalizeServiceNames(name))

// Configure the container restart policy.
switch service.Restart {
Expand Down
25 changes: 13 additions & 12 deletions pkg/transformer/kubernetes/kubernetes.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ import (
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/util/intstr"
//"k8s.io/kubernetes/pkg/controller/daemon"
"github.com/kubernetes-incubator/kompose/pkg/loader/compose"
"github.com/pkg/errors"
)

Expand Down Expand Up @@ -110,7 +111,7 @@ func (k *Kubernetes) InitPodSpec(name string, image string) api.PodSpec {
pod := api.PodSpec{
Containers: []api.Container{
{
Name: name,
Name: compose.NormalizeServiceNames(name),
Image: image,
},
},
Expand All @@ -126,13 +127,13 @@ func (k *Kubernetes) InitRC(name string, service kobject.ServiceConfig, replicas
APIVersion: "v1",
},
ObjectMeta: api.ObjectMeta{
Name: name,
Name: compose.NormalizeServiceNames(name),
},
Spec: api.ReplicationControllerSpec{
Replicas: int32(replicas),
Template: &api.PodTemplateSpec{
ObjectMeta: api.ObjectMeta{
Labels: transformer.ConfigLabels(name),
Labels: transformer.ConfigLabels(compose.NormalizeServiceNames(name)),
},
Spec: k.InitPodSpec(name, service.Image),
},
Expand All @@ -149,11 +150,11 @@ func (k *Kubernetes) InitSvc(name string, service kobject.ServiceConfig) *api.Se
APIVersion: "v1",
},
ObjectMeta: api.ObjectMeta{
Name: name,
Labels: transformer.ConfigLabels(name),
Name: compose.NormalizeServiceNames(name),
Labels: transformer.ConfigLabels(compose.NormalizeServiceNames(name)),
},
Spec: api.ServiceSpec{
Selector: transformer.ConfigLabels(name),
Selector: transformer.ConfigLabels(compose.NormalizeServiceNames(name)),
},
}
return svc
Expand All @@ -167,7 +168,7 @@ func (k *Kubernetes) InitD(name string, service kobject.ServiceConfig, replicas
APIVersion: "extensions/v1beta1",
},
ObjectMeta: api.ObjectMeta{
Name: name,
Name: compose.NormalizeServiceNames(name),
},
Spec: extensions.DeploymentSpec{
Replicas: int32(replicas),
Expand Down Expand Up @@ -250,7 +251,7 @@ func (k *Kubernetes) CreatePVC(name string, mode string) (*api.PersistentVolumeC
APIVersion: "v1",
},
ObjectMeta: api.ObjectMeta{
Name: name,
Name: compose.NormalizeServiceNames(name),
},
Spec: api.PersistentVolumeClaimSpec{
Resources: api.ResourceRequirements{
Expand Down Expand Up @@ -336,7 +337,7 @@ func (k *Kubernetes) ConfigTmpfs(name string, service kobject.ServiceConfig) ([]

// create a new volume mount object and append to list
volMount := api.VolumeMount{
Name: volumeName,
Name: compose.NormalizeServiceNames(volumeName),
MountPath: volume,
}
volumeMounts = append(volumeMounts, volMount)
Expand All @@ -346,7 +347,7 @@ func (k *Kubernetes) ConfigTmpfs(name string, service kobject.ServiceConfig) ([]

// create a new volume object using the volsource and add to list
vol := api.Volume{
Name: volumeName,
Name: compose.NormalizeServiceNames(volumeName),
VolumeSource: *volSource,
}
volumes = append(volumes, vol)
Expand Down Expand Up @@ -389,7 +390,7 @@ func (k *Kubernetes) ConfigVolumes(name string, service kobject.ServiceConfig) (

// create a new volume mount object and append to list
volmount := api.VolumeMount{
Name: volumeName,
Name: compose.NormalizeServiceNames(volumeName),
ReadOnly: readonly,
MountPath: container,
}
Expand All @@ -413,7 +414,7 @@ func (k *Kubernetes) ConfigVolumes(name string, service kobject.ServiceConfig) (

// create a new volume object using the volsource and add to list
vol := api.Volume{
Name: volumeName,
Name: compose.NormalizeServiceNames(volumeName),
VolumeSource: *volsource,
}
volumes = append(volumes, vol)
Expand Down
21 changes: 11 additions & 10 deletions pkg/transformer/openshift/openshift.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ import (

"time"

"github.com/kubernetes-incubator/kompose/pkg/loader/compose"
buildapi "github.com/openshift/origin/pkg/build/api"
deployapi "github.com/openshift/origin/pkg/deploy/api"
deploymentconfigreaper "github.com/openshift/origin/pkg/deploy/cmd"
Expand Down Expand Up @@ -183,7 +184,7 @@ func initBuildConfig(name string, service kobject.ServiceConfig, composeFileDir
APIVersion: "v1",
},
ObjectMeta: api.ObjectMeta{
Name: name,
Name: compose.NormalizeServiceNames(name),
},
Spec: buildapi.BuildConfigSpec{
Triggers: []buildapi.BuildTriggerPolicy{
Expand All @@ -207,7 +208,7 @@ func initBuildConfig(name string, service kobject.ServiceConfig, composeFileDir
Output: buildapi.BuildOutput{
To: &kapi.ObjectReference{
Kind: "ImageStreamTag",
Name: name + ":latest",
Name: compose.NormalizeServiceNames(name) + ":latest",
},
},
},
Expand All @@ -219,7 +220,7 @@ func initBuildConfig(name string, service kobject.ServiceConfig, composeFileDir
// initDeploymentConfig initialize OpenShifts DeploymentConfig object
func (o *OpenShift) initDeploymentConfig(name string, service kobject.ServiceConfig, replicas int) *deployapi.DeploymentConfig {
tag := getImageTag(service.Image)
containerName := []string{name}
containerName := []string{compose.NormalizeServiceNames(name)}

// Use ContainerName if it was set
if service.ContainerName != "" {
Expand All @@ -232,16 +233,16 @@ func (o *OpenShift) initDeploymentConfig(name string, service kobject.ServiceCon
APIVersion: "v1",
},
ObjectMeta: api.ObjectMeta{
Name: name,
Labels: map[string]string{"service": name},
Name: compose.NormalizeServiceNames(name),
Labels: map[string]string{"service": compose.NormalizeServiceNames(name)},
},
Spec: deployapi.DeploymentConfigSpec{
Replicas: int32(replicas),
Selector: map[string]string{"service": name},
Selector: map[string]string{"service": compose.NormalizeServiceNames(name)},
//UniqueLabelKey: p.Name,
Template: &api.PodTemplateSpec{
ObjectMeta: api.ObjectMeta{
Labels: map[string]string{"service": name},
Labels: map[string]string{"service": compose.NormalizeServiceNames(name)},
},
Spec: o.InitPodSpec(name, " "),
},
Expand All @@ -257,7 +258,7 @@ func (o *OpenShift) initDeploymentConfig(name string, service kobject.ServiceCon
Automatic: true,
ContainerNames: containerName,
From: api.ObjectReference{
Name: name + ":" + tag,
Name: compose.NormalizeServiceNames(name) + ":" + tag,
Kind: "ImageStreamTag",
},
},
Expand All @@ -275,7 +276,7 @@ func (o *OpenShift) initRoute(name string, service kobject.ServiceConfig, port i
APIVersion: "v1",
},
ObjectMeta: api.ObjectMeta{
Name: name,
Name: compose.NormalizeServiceNames(name),
},
Spec: routeapi.RouteSpec{
Port: &routeapi.RoutePort{
Expand All @@ -285,7 +286,7 @@ func (o *OpenShift) initRoute(name string, service kobject.ServiceConfig, port i
},
To: routeapi.RouteTargetReference{
Kind: "Service",
Name: name,
Name: compose.NormalizeServiceNames(name),
},
},
}
Expand Down

0 comments on commit 8d81b48

Please sign in to comment.