Skip to content

Commit a29c21c

Browse files
committed
add concatContainerRegistryUrl
1 parent 708a91e commit a29c21c

File tree

4 files changed

+61
-43
lines changed

4 files changed

+61
-43
lines changed

cmd/kubernetesDeploy.go

Lines changed: 12 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -537,7 +537,11 @@ func defineDeploymentValues(config kubernetesDeployOptions, containerRegistry st
537537
var err error
538538
var useDigests bool
539539

540-
fmt.Printf("containerRegistry: %s\n", containerRegistry)
540+
// cds-dk chart templates creates images in format "<global.image.registry>/<imageName>:<tag>"
541+
if !config.ConcatContainerRegistryURL {
542+
fmt.Printf("defineDeploymentValues: omit containerRegistry concatenation\n")
543+
containerRegistry = ""
544+
}
541545

542546
dv := &deploymentValues{
543547
mapping: config.ValuesMapping,
@@ -557,11 +561,7 @@ func defineDeploymentValues(config kubernetesDeployOptions, containerRegistry st
557561
}
558562

559563
for i, key := range config.ImageNames {
560-
containerRegistryPrefix := containerRegistry
561-
if strings.HasPrefix(config.ImageNames[i], containerRegistryPrefix) {
562-
// cds-dk chart templates creates images in format "<global.image.registry>/<imageName>:<tag>"
563-
containerRegistryPrefix = ""
564-
}
564+
565565
name, tag, err := splitFullImageName(config.ImageNameTags[i])
566566
if err != nil {
567567
log.Entry().WithError(err).Fatalf("Container image '%v' incorrect", config.ImageNameTags[i])
@@ -571,17 +571,17 @@ func defineDeploymentValues(config kubernetesDeployOptions, containerRegistry st
571571
tag = fmt.Sprintf("%s@%s", tag, config.ImageDigests[i])
572572
}
573573

574-
dv.add(createGoKey("image", key, "repository"), formatRepository(containerRegistryPrefix, name))
574+
dv.add(createGoKey("image", key, "repository"), formatRepository(containerRegistry, name))
575575
dv.add(createGoKey("image", key, "tag"), tag)
576576
// usable for subcharts:
577-
dv.add(createGoKey(key, "image", "repository"), formatRepository(containerRegistryPrefix, name))
577+
dv.add(createGoKey(key, "image", "repository"), formatRepository(containerRegistry, name))
578578
dv.add(createGoKey(key, "image", "tag"), tag)
579-
dv.add(createHelmKey(key, "image", "repository"), formatRepository(containerRegistryPrefix, name))
579+
dv.add(createHelmKey(key, "image", "repository"), formatRepository(containerRegistry, name))
580580
dv.add(createHelmKey(key, "image", "tag"), tag)
581581

582582
if len(config.ImageNames) == 1 {
583583
dv.singleImage = true
584-
dv.add("image.repository", formatRepository(containerRegistryPrefix, name))
584+
dv.add("image.repository", formatRepository(containerRegistry, name))
585585
dv.add("image.tag", tag)
586586
}
587587
}
@@ -591,13 +591,7 @@ func defineDeploymentValues(config kubernetesDeployOptions, containerRegistry st
591591
containerImageTag := ""
592592
dv.singleImage = true
593593

594-
containerRegistryPrefix := containerRegistry
595-
596594
if len(config.Image) > 0 {
597-
// cds-dk chart templates creates images in format "<global.image.registry>/<imageName>:<tag>"
598-
if strings.HasPrefix(config.Image, containerRegistryPrefix) {
599-
containerRegistryPrefix = ""
600-
}
601595
containerImageName, containerImageTag, err = splitFullImageName(config.Image)
602596
if err != nil {
603597
log.Entry().WithError(err).Fatalf("Container image '%v' incorrect", config.Image)
@@ -608,11 +602,11 @@ func defineDeploymentValues(config kubernetesDeployOptions, containerRegistry st
608602
} else {
609603
return nil, fmt.Errorf("image information not given - please either set image or containerImageName and containerImageTag")
610604
}
611-
dv.add("image.repository", formatRepository(containerRegistryPrefix, containerImageName))
605+
dv.add("image.repository", formatRepository(containerRegistry, containerImageName))
612606

613607
dv.add("image.tag", containerImageTag)
614608

615-
dv.add(createGoKey("image", containerImageName, "repository"), formatRepository(containerRegistryPrefix, containerImageName))
609+
dv.add(createGoKey("image", containerImageName, "repository"), formatRepository(containerRegistry, containerImageName))
616610
dv.add(createGoKey("image", containerImageName, "tag"), containerImageTag)
617611
}
618612

cmd/kubernetesDeploy_generated.go

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/kubernetesDeploy_test.go

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,9 @@ func TestDefineDeploymentValues(t *testing.T) {
4242
{
4343
name: "single image",
4444
config: kubernetesDeployOptions{
45-
ImageNames: []string{},
46-
Image: "myImage:myTag",
45+
ConcatContainerRegistryURL: true,
46+
ImageNames: []string{},
47+
Image: "myImage:myTag",
4748
},
4849
containerRegistry: "my.registry",
4950
expectedResult: deploymentValues{
@@ -59,29 +60,31 @@ func TestDefineDeploymentValues(t *testing.T) {
5960
expectedError: nil,
6061
},
6162
{
62-
name: "single image with registry prefix",
63+
name: "single image without registry prefix",
6364
config: kubernetesDeployOptions{
64-
ImageNames: []string{},
65-
Image: "my.registry/myImage:myTag",
65+
ConcatContainerRegistryURL: false,
66+
ImageNames: []string{},
67+
Image: "myImage:myTag",
6668
},
6769
containerRegistry: "my.registry",
6870
expectedResult: deploymentValues{
6971
mapping: map[string]interface{}(nil),
7072
singleImage: true,
7173
values: []struct{ key, value string }{
72-
{key: "image.repository", value: "my.registry/myImage"},
74+
{key: "image.repository", value: "myImage"},
7375
{key: "image.tag", value: "myTag"},
74-
{key: "image.my_registry/myImage.repository", value: "my.registry/myImage"},
75-
{key: "image.my_registry/myImage.tag", value: "myTag"},
76+
{key: "image.myImage.repository", value: "myImage"},
77+
{key: "image.myImage.tag", value: "myTag"},
7678
},
7779
},
7880
expectedError: nil,
7981
},
8082
{
8183
name: "multiple images",
8284
config: kubernetesDeployOptions{
83-
ImageNames: []string{"myImage/sub1", "myImage/sub2"},
84-
ImageNameTags: []string{"myImage/sub1:myTag", "myImage/sub2:myTag"},
85+
ConcatContainerRegistryURL: true,
86+
ImageNames: []string{"myImage/sub1", "myImage/sub2"},
87+
ImageNameTags: []string{"myImage/sub1:myTag", "myImage/sub2:myTag"},
8588
},
8689
containerRegistry: "my.registry",
8790
expectedResult: deploymentValues{
@@ -105,28 +108,29 @@ func TestDefineDeploymentValues(t *testing.T) {
105108
expectedError: nil,
106109
},
107110
{
108-
name: "multiple images with registry prefix",
111+
name: "multiple images without registry prefix",
109112
config: kubernetesDeployOptions{
110-
ImageNames: []string{"my.registry/myImage/sub1", "my.registry/myImage/sub2"},
111-
ImageNameTags: []string{"my.registry/myImage/sub1:myTag", "my.registry/myImage/sub2:myTag"},
113+
ConcatContainerRegistryURL: false,
114+
ImageNames: []string{"myImage/sub1", "myImage/sub2"},
115+
ImageNameTags: []string{"myImage/sub1:myTag", "myImage/sub2:myTag"},
112116
},
113117
containerRegistry: "my.registry",
114118
expectedResult: deploymentValues{
115119
mapping: map[string]interface{}(nil),
116120
singleImage: false,
117121
values: []struct{ key, value string }{
118-
{key: "image.my_registry/myImage/sub1.repository", value: "my.registry/myImage/sub1"},
119-
{key: "image.my_registry/myImage/sub1.tag", value: "myTag"},
120-
{key: "my_registry/myImage/sub1.image.repository", value: "my.registry/myImage/sub1"},
121-
{key: "my_registry/myImage/sub1.image.tag", value: "myTag"},
122-
{key: "my_registry/myImage/sub1.image.repository", value: "my.registry/myImage/sub1"},
123-
{key: "my_registry/myImage/sub1.image.tag", value: "myTag"},
124-
{key: "image.my_registry/myImage/sub2.repository", value: "my.registry/myImage/sub2"},
125-
{key: "image.my_registry/myImage/sub2.tag", value: "myTag"},
126-
{key: "my_registry/myImage/sub2.image.repository", value: "my.registry/myImage/sub2"},
127-
{key: "my_registry/myImage/sub2.image.tag", value: "myTag"},
128-
{key: "my_registry/myImage/sub2.image.repository", value: "my.registry/myImage/sub2"},
129-
{key: "my_registry/myImage/sub2.image.tag", value: "myTag"},
122+
{key: "image.myImage/sub1.repository", value: "myImage/sub1"},
123+
{key: "image.myImage/sub1.tag", value: "myTag"},
124+
{key: "myImage/sub1.image.repository", value: "myImage/sub1"},
125+
{key: "myImage/sub1.image.tag", value: "myTag"},
126+
{key: "myImage/sub1.image.repository", value: "myImage/sub1"},
127+
{key: "myImage/sub1.image.tag", value: "myTag"},
128+
{key: "image.myImage/sub2.repository", value: "myImage/sub2"},
129+
{key: "image.myImage/sub2.tag", value: "myTag"},
130+
{key: "myImage/sub2.image.repository", value: "myImage/sub2"},
131+
{key: "myImage/sub2.image.tag", value: "myTag"},
132+
{key: "myImage/sub2.image.repository", value: "myImage/sub2"},
133+
{key: "myImage/sub2.image.tag", value: "myTag"},
130134
},
131135
},
132136
expectedError: nil,

resources/metadata/kubernetesDeploy.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,15 @@ spec:
197197
- STAGES
198198
- STEPS
199199
mandatory: true
200+
- name: concatContainerRegistryUrl
201+
type: bool
202+
description: "Concatenate the URL as a prefix to the image name. Since the cds-dk templates already include the registry, this concatenation must be optionally disabled."
203+
scope:
204+
- GENERAL
205+
- PARAMETERS
206+
- STAGES
207+
- STEPS
208+
default: true
200209
- name: containerRegistryUser
201210
description: Username for container registry access - typically provided by the CI/CD environment.
202211
type: string

0 commit comments

Comments
 (0)