From 5303f78de8efce9fe4057aef21ea5e1f4ad85c49 Mon Sep 17 00:00:00 2001 From: Kenjiro Nakayama Date: Sun, 8 Apr 2018 18:26:39 +0900 Subject: [PATCH] Create container name after dropped ":" and "@" both separately When image has ":" after "@", kubectl create deployment fails due to invalid container name. This patch changes to create the container name after drooping ":" and "@" both separately. --- pkg/kubectl/deployment.go | 3 ++- pkg/kubectl/deployment_test.go | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/kubectl/deployment.go b/pkg/kubectl/deployment.go index 76a4f1f4436..afbf1c9a53d 100644 --- a/pkg/kubectl/deployment.go +++ b/pkg/kubectl/deployment.go @@ -78,7 +78,8 @@ func buildPodSpec(images []string) v1.PodSpec { // Remove any tag or hash if strings.Contains(name, ":") { name = strings.Split(name, ":")[0] - } else if strings.Contains(name, "@") { + } + if strings.Contains(name, "@") { name = strings.Split(name, "@")[0] } podSpec.Containers = append(podSpec.Containers, v1.Container{Name: name, Image: imageString}) diff --git a/pkg/kubectl/deployment_test.go b/pkg/kubectl/deployment_test.go index 25569424b58..9ee0004a867 100644 --- a/pkg/kubectl/deployment_test.go +++ b/pkg/kubectl/deployment_test.go @@ -37,7 +37,7 @@ func TestDeploymentBasicGenerate(t *testing.T) { { name: "deployment name and images ok", deploymentName: "images-name-ok", - images: []string{"nn/image1", "registry/nn/image2", "nn/image3:tag", "nn/image4@digest"}, + images: []string{"nn/image1", "registry/nn/image2", "nn/image3:tag", "nn/image4@digest", "nn/image5@sha256:digest"}, expected: &extensionsv1beta1.Deployment{ ObjectMeta: metav1.ObjectMeta{ Name: "images-name-ok", @@ -58,6 +58,7 @@ func TestDeploymentBasicGenerate(t *testing.T) { {Name: "image2", Image: "registry/nn/image2"}, {Name: "image3", Image: "nn/image3:tag"}, {Name: "image4", Image: "nn/image4@digest"}, + {Name: "image5", Image: "nn/image5@sha256:digest"}, }, }, },