Skip to content

Commit 305160c

Browse files
committed
Setup registry.conf Env Vars for Buildah
* Remove build-registry-conf mount * Supply ConfigMap for build-system-configs mount * Mount build-system-configs for all build containers * Rename registry config -> build system config JIRA-ID: [DEVEXP-154](https://jira.coreos.com/browse/DEVEXP-154)
1 parent 49db870 commit 305160c

File tree

12 files changed

+115
-131
lines changed

12 files changed

+115
-131
lines changed

pkg/build/buildapihelpers/util.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ import (
99

1010
const (
1111
// buildPodSuffix is the suffix used to append to a build pod name given a build name
12-
buildPodSuffix = "build"
13-
caConfigMapSuffix = "ca"
14-
registryConfConfigMapSuffix = "registry-conf"
12+
buildPodSuffix = "build"
13+
caConfigMapSuffix = "ca"
14+
sysConfigConfigMapSuffix = "sys-config"
1515
)
1616

1717
// GetBuildPodName returns name of the build pod.
@@ -25,10 +25,10 @@ func GetBuildCAConfigMapName(build *buildv1.Build) string {
2525
return apihelpers.GetConfigMapName(build.Name, caConfigMapSuffix)
2626
}
2727

28-
// GetBuildRegistryConfigMapName returns the name of the ConfigMap containing the build's
28+
// GetBuildSystemConfigMapName returns the name of the ConfigMap containing the build's
2929
// registry configuration.
30-
func GetBuildRegistryConfigMapName(build *buildv1.Build) string {
31-
return apihelpers.GetConfigMapName(build.Name, registryConfConfigMapSuffix)
30+
func GetBuildSystemConfigMapName(build *buildv1.Build) string {
31+
return apihelpers.GetConfigMapName(build.Name, sysConfigConfigMapSuffix)
3232
}
3333

3434
func StrategyType(strategy buildv1.BuildStrategy) string {

pkg/build/controller/build/build_controller.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -969,13 +969,13 @@ func (bc *BuildController) createBuildPod(build *buildv1.Build) (*buildUpdate, e
969969
return update, err
970970
}
971971
}
972-
hasRegistryConf, err := bc.findOwnedConfigMap(existingPod, build.Namespace, buildapihelpers.GetBuildRegistryConfigMapName(build))
972+
hasRegistryConf, err := bc.findOwnedConfigMap(existingPod, build.Namespace, buildapihelpers.GetBuildSystemConfigMapName(build))
973973
if err != nil {
974974
return update, fmt.Errorf("could not find registry config for build: %v", err)
975975
}
976976
if !hasRegistryConf {
977977
// Create the registry config ConfigMap to mount the regsitry config to the existing build pod
978-
update, err = bc.createBuildRegistryConfConfigMap(build, existingPod, update)
978+
update, err = bc.createBuildSystemConfConfigMap(build, existingPod, update)
979979
if err != nil {
980980
return update, err
981981
}
@@ -989,7 +989,7 @@ func (bc *BuildController) createBuildPod(build *buildv1.Build) (*buildUpdate, e
989989
return update, err
990990
}
991991
// Create the registry config ConfigMap to mount the registry configuration into the build pod
992-
update, err = bc.createBuildRegistryConfConfigMap(build, pod, update)
992+
update, err = bc.createBuildSystemConfConfigMap(build, pod, update)
993993
if err != nil {
994994
return nil, err
995995
}
@@ -1498,23 +1498,23 @@ func (bc *BuildController) findOwnedConfigMap(owner *corev1.Pod, namespace strin
14981498
return true, nil
14991499
}
15001500

1501-
func (bc *BuildController) createBuildRegistryConfConfigMap(build *buildv1.Build, buildPod *corev1.Pod, update *buildUpdate) (*buildUpdate, error) {
1502-
configMapSpec := bc.createBuildRegistryConfigMapSpec(build, buildPod)
1501+
func (bc *BuildController) createBuildSystemConfConfigMap(build *buildv1.Build, buildPod *corev1.Pod, update *buildUpdate) (*buildUpdate, error) {
1502+
configMapSpec := bc.createBuildSystemConfigMapSpec(build, buildPod)
15031503
configMap, err := bc.configMapClient.ConfigMaps(build.Namespace).Create(configMapSpec)
15041504
if err != nil {
1505-
bc.recorder.Eventf(build, corev1.EventTypeWarning, "FailedCreate", "Error creating build registry config configMap: %v", err)
1506-
update.setReason("CannotCreateRegistryConfConfigMap")
1507-
update.setMessage(buildutil.StatusMessageCannotCreateRegistryConfConfigMap)
1508-
return update, fmt.Errorf("failed to create build registry config configMap: %v", err)
1505+
bc.recorder.Eventf(build, corev1.EventTypeWarning, "FailedCreate", "Error creating build system config configMap: %v", err)
1506+
update.setReason("CannotCreateBuildSysConfigMap")
1507+
update.setMessage(buildutil.StatusMessageCannotCreateBuildSysConfigMap)
1508+
return update, fmt.Errorf("failed to create build system config configMap: %v", err)
15091509
}
1510-
glog.V(4).Infof("Created registry config configMap %s/%s for build %s", build.Namespace, configMap.Name, buildDesc(build))
1510+
glog.V(4).Infof("Created build system config configMap %s/%s for build %s", build.Namespace, configMap.Name, buildDesc(build))
15111511
return update, nil
15121512
}
15131513

1514-
func (bc *BuildController) createBuildRegistryConfigMapSpec(build *buildv1.Build, buildPod *corev1.Pod) *corev1.ConfigMap {
1514+
func (bc *BuildController) createBuildSystemConfigMapSpec(build *buildv1.Build, buildPod *corev1.Pod) *corev1.ConfigMap {
15151515
cm := &corev1.ConfigMap{
15161516
ObjectMeta: metav1.ObjectMeta{
1517-
Name: buildapihelpers.GetBuildRegistryConfigMapName(build),
1517+
Name: buildapihelpers.GetBuildSystemConfigMapName(build),
15181518
OwnerReferences: []metav1.OwnerReference{
15191519
makeBuildPodOwnerRef(buildPod),
15201520
},

pkg/build/controller/build/build_controller_test.go

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@ func TestHandleBuild(t *testing.T) {
378378
}
379379
if !registryConfigMapCreated {
380380
registryConfigMapCreated = true
381-
return true, mockBuilRegistryConfigMap(tc.build, newPod), nil
381+
return true, mockBuildSystemConfigMap(tc.build, newPod), nil
382382
}
383383
return false, nil, nil
384384
})
@@ -1227,18 +1227,21 @@ func TestCreateBuildRegistryConfConfigMap(t *testing.T) {
12271227
defer bc.stop()
12281228
build := dockerStrategy(mockBuild(buildv1.BuildPhaseNew, buildv1.BuildOutput{}))
12291229
pod := mockBuildPod(build)
1230-
caMap := bc.createBuildRegistryConfigMapSpec(build, pod)
1230+
caMap := bc.createBuildSystemConfigMapSpec(build, pod)
12311231
if caMap == nil {
1232-
t.Error("registry config configMap was not created")
1232+
t.Error("build system config configMap was not created")
12331233
}
12341234
if !hasBuildPodOwnerRef(pod, caMap) {
1235-
t.Error("registry conf configMap is missing owner ref to the build pod")
1235+
t.Error("build system config configMap is missing owner ref to the build pod")
12361236
}
12371237
if _, hasConf := caMap.Data[buildutil.RegistryConfKey]; !hasConf {
1238-
t.Errorf("expected registry conf configMap to have key %s", buildutil.RegistryConfKey)
1238+
t.Errorf("expected build system config configMap to have key %s", buildutil.RegistryConfKey)
12391239
}
12401240
if caMap.Data[buildutil.RegistryConfKey] != dummyRegistryConf {
1241-
t.Errorf("expected registry conf configMap.%s to contain\n%s\ngot:\n%s", buildutil.RegistryConfKey, dummyCA, caMap.Data[buildutil.RegistryConfKey])
1241+
t.Errorf("expected build system config configMap.%s to contain\n%s\ngot:\n%s",
1242+
buildutil.RegistryConfKey,
1243+
dummyCA,
1244+
caMap.Data[buildutil.RegistryConfKey])
12421245
}
12431246
}
12441247

@@ -1623,9 +1626,9 @@ func mockBuildCAConfigMap(build *buildv1.Build, pod *corev1.Pod) *corev1.ConfigM
16231626
return cm
16241627
}
16251628

1626-
func mockBuilRegistryConfigMap(build *buildv1.Build, pod *corev1.Pod) *corev1.ConfigMap {
1629+
func mockBuildSystemConfigMap(build *buildv1.Build, pod *corev1.Pod) *corev1.ConfigMap {
16271630
cm := &corev1.ConfigMap{}
1628-
cm.Name = buildapihelpers.GetBuildRegistryConfigMapName(build)
1631+
cm.Name = buildapihelpers.GetBuildSystemConfigMapName(build)
16291632
cm.Namespace = build.Namespace
16301633
if pod != nil {
16311634
pod.OwnerReferences = []metav1.OwnerReference{

pkg/build/controller/strategy/custom.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,9 +137,8 @@ func (bs *CustomBuildStrategy) CreateBuildPod(build *buildv1.Build, includeAddit
137137
setupSourceSecrets(pod, &pod.Spec.Containers[0], build.Spec.Source.SourceSecret)
138138
setupInputSecrets(pod, &pod.Spec.Containers[0], build.Spec.Source.Secrets)
139139
setupAdditionalSecrets(pod, &pod.Spec.Containers[0], build.Spec.Strategy.CustomStrategy.Secrets)
140-
setupContainersConfigs(pod, &pod.Spec.Containers[0])
140+
setupContainersConfigs(build, pod)
141141
setupBuildCAs(build, pod, includeAdditionalCA)
142-
setupRegistries(build, pod)
143142
setupContainersStorage(pod, &pod.Spec.Containers[0]) // for unprivileged builds
144143
return pod, nil
145144
}

pkg/build/controller/strategy/custom_test.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,18 +66,16 @@ func TestCustomCreateBuildPod(t *testing.T) {
6666
// additional secrets
6767
// build-system-configmap
6868
// certificate authorities
69-
// registry config
7069
// container storage
71-
if len(container.VolumeMounts) != 8 {
72-
t.Fatalf("Expected 8 volumes in container, got %d", len(container.VolumeMounts))
70+
if len(container.VolumeMounts) != 7 {
71+
t.Fatalf("Expected 7 volumes in container, got %d", len(container.VolumeMounts))
7372
}
7473
expectedMounts := []string{"/var/run/docker.sock",
7574
DockerPushSecretMountPath,
7675
sourceSecretMountPath,
7776
"secret",
7877
ConfigMapBuildSystemConfigsMountPath,
7978
ConfigMapCertsMountPath,
80-
ConfigMapRegistryConfMountPath,
8179
"/var/lib/containers/storage",
8280
}
8381
for i, expected := range expectedMounts {
@@ -96,8 +94,8 @@ func TestCustomCreateBuildPod(t *testing.T) {
9694
if !kapihelper.Semantic.DeepEqual(container.Resources, build.Spec.Resources) {
9795
t.Fatalf("Expected actual=expected, %v != %v", container.Resources, build.Spec.Resources)
9896
}
99-
if len(actual.Spec.Volumes) != 8 {
100-
t.Fatalf("Expected 8 volumes in Build pod, got %d", len(actual.Spec.Volumes))
97+
if len(actual.Spec.Volumes) != 7 {
98+
t.Fatalf("Expected 7 volumes in Build pod, got %d", len(actual.Spec.Volumes))
10199
}
102100
buildJSON, _ := runtime.Encode(customBuildEncodingCodecFactory.LegacyCodec(buildv1.GroupVersion), build)
103101
errorCases := map[int][]string{

pkg/build/controller/strategy/docker.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,6 @@ func (bs *DockerBuildStrategy) CreateBuildPod(build *buildv1.Build, includeAddit
146146
Resources: build.Spec.Resources,
147147
}
148148
setupDockerSecrets(pod, &extractImageContentContainer, build.Spec.Output.PushSecret, strategy.PullSecret, build.Spec.Source.Images)
149-
setupContainersConfigs(pod, &extractImageContentContainer)
150149
setupContainersStorage(pod, &extractImageContentContainer)
151150
pod.Spec.InitContainers = append(pod.Spec.InitContainers, extractImageContentContainer)
152151
}
@@ -180,9 +179,8 @@ func (bs *DockerBuildStrategy) CreateBuildPod(build *buildv1.Build, includeAddit
180179
// TODO: consider moving this into the git-clone container and doing the secret copying there instead.
181180
setupInputSecrets(pod, &pod.Spec.Containers[0], build.Spec.Source.Secrets)
182181
setupInputConfigMaps(pod, &pod.Spec.Containers[0], build.Spec.Source.ConfigMaps)
183-
setupContainersConfigs(pod, &pod.Spec.Containers[0])
182+
setupContainersConfigs(build, pod)
184183
setupBuildCAs(build, pod, includeAdditionalCA)
185-
setupRegistries(build, pod)
186184
setupContainersStorage(pod, &pod.Spec.Containers[0]) // for unprivileged builds
187185
// setupContainersNodeStorage(pod, &pod.Spec.Containers[0]) // for privileged builds
188186
return pod, nil

pkg/build/controller/strategy/docker_test.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,9 @@ func TestDockerCreateBuildPod(t *testing.T) {
7070
// inputconfigmap
7171
// build-system-config
7272
// certificate authorities
73-
// registry config
7473
// container storage
75-
if len(container.VolumeMounts) != 9 {
76-
t.Fatalf("Expected 9 volumes in container, got %d", len(container.VolumeMounts))
74+
if len(container.VolumeMounts) != 8 {
75+
t.Fatalf("Expected 8 volumes in container, got %d", len(container.VolumeMounts))
7776
}
7877
if *actual.Spec.ActiveDeadlineSeconds != 60 {
7978
t.Errorf("Expected ActiveDeadlineSeconds 60, got %d", *actual.Spec.ActiveDeadlineSeconds)
@@ -85,7 +84,6 @@ func TestDockerCreateBuildPod(t *testing.T) {
8584
filepath.Join(ConfigMapBuildSourceBaseMountPath, "build-config"),
8685
ConfigMapBuildSystemConfigsMountPath,
8786
ConfigMapCertsMountPath,
88-
ConfigMapRegistryConfMountPath,
8987
"/var/lib/containers/storage",
9088
}
9189
for i, expected := range expectedMounts {
@@ -94,8 +92,8 @@ func TestDockerCreateBuildPod(t *testing.T) {
9492
}
9593
}
9694
// build pod has an extra volume: the git clone source secret
97-
if len(actual.Spec.Volumes) != 10 {
98-
t.Fatalf("Expected 10 volumes in Build pod, got %d", len(actual.Spec.Volumes))
95+
if len(actual.Spec.Volumes) != 9 {
96+
t.Fatalf("Expected 9 volumes in Build pod, got %d", len(actual.Spec.Volumes))
9997
}
10098
if !kapihelper.Semantic.DeepEqual(container.Resources, build.Spec.Resources) {
10199
t.Fatalf("Expected actual=expected, %v != %v", container.Resources, build.Spec.Resources)

pkg/build/controller/strategy/sti.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,6 @@ func (bs *SourceBuildStrategy) CreateBuildPod(build *buildv1.Build, includeAddit
151151
Resources: build.Spec.Resources,
152152
}
153153
setupDockerSecrets(pod, &extractImageContentContainer, build.Spec.Output.PushSecret, strategy.PullSecret, build.Spec.Source.Images)
154-
setupContainersConfigs(pod, &extractImageContentContainer)
155154
setupContainersStorage(pod, &extractImageContentContainer)
156155
pod.Spec.InitContainers = append(pod.Spec.InitContainers, extractImageContentContainer)
157156
}
@@ -185,9 +184,8 @@ func (bs *SourceBuildStrategy) CreateBuildPod(build *buildv1.Build, includeAddit
185184
// TODO: consider moving this into the git-clone container and doing the secret copying there instead.
186185
setupInputSecrets(pod, &pod.Spec.Containers[0], build.Spec.Source.Secrets)
187186
setupInputConfigMaps(pod, &pod.Spec.Containers[0], build.Spec.Source.ConfigMaps)
188-
setupContainersConfigs(pod, &pod.Spec.Containers[0])
187+
setupContainersConfigs(build, pod)
189188
setupBuildCAs(build, pod, includeAdditionalCA)
190-
setupRegistries(build, pod)
191189
setupContainersStorage(pod, &pod.Spec.Containers[0]) // for unprivileged builds
192190
// setupContainersNodeStorage(pod, &pod.Spec.Containers[0]) // for privileged builds
193191
return pod, nil

pkg/build/controller/strategy/sti_test.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -110,10 +110,9 @@ func testSTICreateBuildPod(t *testing.T, rootAllowed bool) {
110110
// inputconfigmap
111111
// build-system-configmap
112112
// certificate authorities
113-
// registry conf
114113
// container storage
115-
if len(container.VolumeMounts) != 9 {
116-
t.Fatalf("Expected 9 volumes in container, got %d %v", len(container.VolumeMounts), container.VolumeMounts)
114+
if len(container.VolumeMounts) != 8 {
115+
t.Fatalf("Expected 8 volumes in container, got %d %v", len(container.VolumeMounts), container.VolumeMounts)
117116
}
118117
expectedMounts := []string{buildutil.BuildWorkDirMount,
119118
DockerPushSecretMountPath,
@@ -122,7 +121,6 @@ func testSTICreateBuildPod(t *testing.T, rootAllowed bool) {
122121
filepath.Join(ConfigMapBuildSourceBaseMountPath, "configmap"),
123122
ConfigMapBuildSystemConfigsMountPath,
124123
ConfigMapCertsMountPath,
125-
ConfigMapRegistryConfMountPath,
126124
"/var/lib/containers/storage",
127125
}
128126
for i, expected := range expectedMounts {
@@ -131,8 +129,8 @@ func testSTICreateBuildPod(t *testing.T, rootAllowed bool) {
131129
}
132130
}
133131
// build pod has an extra volume: the git clone source secret
134-
if len(actual.Spec.Volumes) != 10 {
135-
t.Fatalf("Expected 10 volumes in Build pod, got %d", len(actual.Spec.Volumes))
132+
if len(actual.Spec.Volumes) != 9 {
133+
t.Fatalf("Expected 9 volumes in Build pod, got %d", len(actual.Spec.Volumes))
136134
}
137135
if *actual.Spec.ActiveDeadlineSeconds != 60 {
138136
t.Errorf("Expected ActiveDeadlineSeconds 60, got %d", *actual.Spec.ActiveDeadlineSeconds)

0 commit comments

Comments
 (0)