Skip to content

Commit c7d7cf7

Browse files
authored
Merge pull request kubernetes#86636 from zhouya0/fix_kubectl_create_deployment_image_name
fix kubectl create deployment image name
2 parents e25ff53 + 5db45e1 commit c7d7cf7

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

staging/src/k8s.io/kubectl/pkg/generate/versioned/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ go_library(
4040
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
4141
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
4242
"//staging/src/k8s.io/apimachinery/pkg/util/intstr:go_default_library",
43+
"//staging/src/k8s.io/apimachinery/pkg/util/rand:go_default_library",
4344
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
4445
"//staging/src/k8s.io/apimachinery/pkg/util/validation:go_default_library",
4546
"//staging/src/k8s.io/client-go/discovery:go_default_library",

staging/src/k8s.io/kubectl/pkg/generate/versioned/deployment.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
extensionsv1beta1 "k8s.io/api/extensions/v1beta1"
2727
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2828
"k8s.io/apimachinery/pkg/runtime"
29+
utilrand "k8s.io/apimachinery/pkg/util/rand"
2930
"k8s.io/kubectl/pkg/generate"
3031
)
3132

@@ -84,11 +85,23 @@ func buildPodSpec(images []string) v1.PodSpec {
8485
if strings.Contains(name, "@") {
8586
name = strings.Split(name, "@")[0]
8687
}
88+
name = sanitizeAndUniquify(name)
8789
podSpec.Containers = append(podSpec.Containers, v1.Container{Name: name, Image: imageString})
8890
}
8991
return podSpec
9092
}
9193

94+
// sanitizeAndUniquify: replaces characters like "." or "_" into "-" to follow DNS1123 rules.
95+
// Then add random suffix to make it uniquified.
96+
func sanitizeAndUniquify(name string) string {
97+
if strings.Contains(name, "_") || strings.Contains(name, ".") {
98+
name = strings.Replace(name, "_", "-", -1)
99+
name = strings.Replace(name, ".", "-", -1)
100+
name = fmt.Sprintf("%s-%s", name, utilrand.String(5))
101+
}
102+
return name
103+
}
104+
92105
// DeploymentBasicGeneratorV1 supports stable generation of a deployment
93106
type DeploymentBasicGeneratorV1 struct {
94107
BaseDeploymentGenerator

0 commit comments

Comments
 (0)