Skip to content

Commit 5105ae3

Browse files
committed
Allowed volume expansion for build pod
1 parent d063aea commit 5105ae3

6 files changed

Lines changed: 42 additions & 10 deletions

File tree

.tool-versions

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
golang 1.24.0

pkg/apis/build/v1alpha2/build_pod.go

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ func (b *Build) BuildPod(images BuildPodImages, buildContext BuildContext) (*cor
272272
layersMount,
273273
workspaceVolume,
274274
homeMount,
275-
}),
275+
}, b.Spec.VolumeMounts),
276276
Env: []corev1.EnvVar{
277277
homeEnv,
278278
platformApiVersionEnvVar,
@@ -295,7 +295,7 @@ func (b *Build) BuildPod(images BuildPodImages, buildContext BuildContext) (*cor
295295
layersMount,
296296
platformMount,
297297
workspaceVolume,
298-
}, bindingVolumeMounts),
298+
}, bindingVolumeMounts, b.Spec.VolumeMounts),
299299
ImagePullPolicy: corev1.PullIfNotPresent,
300300
Env: []corev1.EnvVar{
301301
platformApiVersionEnvVar,
@@ -355,6 +355,7 @@ func (b *Build) BuildPod(images BuildPodImages, buildContext BuildContext) (*cor
355355
reportMount,
356356
notaryV1Mount,
357357
},
358+
b.Spec.VolumeMounts,
358359
),
359360
ImagePullPolicy: corev1.PullIfNotPresent,
360361
SecurityContext: containerSecurityContext(),
@@ -425,6 +426,7 @@ func (b *Build) BuildPod(images BuildPodImages, buildContext BuildContext) (*cor
425426
homeMount,
426427
projectMetadataMount,
427428
},
429+
b.Spec.VolumeMounts,
428430
),
429431
},
430432
)
@@ -446,7 +448,7 @@ func (b *Build) BuildPod(images BuildPodImages, buildContext BuildContext) (*cor
446448
VolumeMounts: volumeMounts([]corev1.VolumeMount{
447449
layersMount,
448450
homeMount,
449-
}, cacheVolumes),
451+
}, cacheVolumes, b.Spec.VolumeMounts),
450452
Env: []corev1.EnvVar{
451453
homeEnv,
452454
platformApiVersionEnvVar,
@@ -471,7 +473,7 @@ func (b *Build) BuildPod(images BuildPodImages, buildContext BuildContext) (*cor
471473
layersMount,
472474
platformMount,
473475
workspaceVolume,
474-
}, bindingVolumeMounts),
476+
}, bindingVolumeMounts, b.Spec.VolumeMounts),
475477
ImagePullPolicy: corev1.PullIfNotPresent,
476478
Env: []corev1.EnvVar{
477479
platformApiVersionEnvVar,
@@ -508,7 +510,7 @@ func (b *Build) BuildPod(images BuildPodImages, buildContext BuildContext) (*cor
508510
workspaceVolume,
509511
homeMount,
510512
reportMount,
511-
}, cacheVolumes),
513+
}, cacheVolumes, b.Spec.VolumeMounts),
512514
Env: envs(
513515
[]corev1.EnvVar{
514516
homeEnv,
@@ -581,7 +583,10 @@ func (b *Build) BuildPod(images BuildPodImages, buildContext BuildContext) (*cor
581583
b.Spec.Source.Source().ImagePullSecretsVolume(registrySourcePullSecretsVolumeName),
582584
b.notarySecretVolume(),
583585
},
584-
bindingVolumes),
586+
b.Spec.Volumes,
587+
bindingVolumes,
588+
),
589+
585590
ImagePullSecrets: b.Spec.Builder.ImagePullSecrets,
586591
},
587592
}
@@ -647,15 +652,19 @@ func (b *Build) useStandardContainers(buildWaiterImage string, pod *corev1.Pod)
647652
ImagePullPolicy: corev1.PullIfNotPresent,
648653
WorkingDir: "/workspace",
649654
VolumeMounts: volumeMounts(
650-
[]corev1.VolumeMount{
651-
buildWaitMount,
652-
},
655+
append(
656+
[]corev1.VolumeMount{buildWaitMount},
657+
b.Spec.VolumeMounts...,
658+
),
653659
),
654660
},
655661
}
662+
656663
pod.Spec.Containers = append(containers, pod.Spec.Containers...)
657664

658665
for i := 0; i < len(pod.Spec.Containers); i++ {
666+
pod.Spec.Containers[i].VolumeMounts = append(pod.Spec.Containers[i].VolumeMounts, b.Spec.VolumeMounts...)
667+
659668
if i == 0 {
660669
pod.Spec.Containers[i].VolumeMounts = append(pod.Spec.Containers[i].VolumeMounts, downwardMount)
661670
pod.Spec.Containers[i] = setUpBuildWaiter(pod.Spec.Containers[i], "/downward/sidecars-ready")
@@ -689,6 +698,8 @@ func (b *Build) useStandardContainers(buildWaiterImage string, pod *corev1.Pod)
689698
},
690699
)
691700

701+
pod.Spec.Volumes = append(pod.Spec.Volumes, b.Spec.Volumes...)
702+
692703
delete(pod.Annotations, IstioInject)
693704
return pod
694705
}
@@ -847,6 +858,7 @@ func (b *Build) rebasePod(buildContext BuildContext, images BuildPodImages) (*co
847858
[]corev1.VolumeMount{
848859
reportMount,
849860
},
861+
b.Spec.VolumeMounts,
850862
),
851863
},
852864
},

pkg/apis/build/v1alpha2/build_types.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ type BuildSpec struct {
7878
SchedulerName string `json:"schedulerName,omitempty"`
7979
PriorityClassName string `json:"priorityClassName,omitempty"`
8080
CreationTime string `json:"creationTime,omitempty"`
81+
VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
82+
Volumes []corev1.Volume `json:"volumes,omitempty"`
8183
}
8284

8385
func (bs *BuildSpec) RegistryCacheTag() string {

pkg/apis/build/v1alpha2/image_builds.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ func (im *Image) Build(sourceResolver *SourceResolver, builder BuilderResource,
8282
PriorityClassName: priorityClass,
8383
ActiveDeadlineSeconds: im.BuildTimeout(),
8484
CreationTime: im.Spec.creationTime(),
85+
Volumes: im.Volumes(),
86+
VolumeMounts: im.VolumeMounts(),
8587
},
8688
}
8789
}
@@ -304,3 +306,17 @@ func (is *ImageSpec) creationTime() string {
304306

305307
return ""
306308
}
309+
310+
func (im *Image) Volumes() []corev1.Volume {
311+
if im.Spec.Build == nil {
312+
return nil
313+
}
314+
return im.Spec.Build.Volumes
315+
}
316+
317+
func (im *Image) VolumeMounts() []corev1.VolumeMount {
318+
if im.Spec.Build == nil {
319+
return nil
320+
}
321+
return im.Spec.Build.VolumeMounts
322+
}

pkg/apis/build/v1alpha2/image_types.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,8 @@ type ImageBuild struct {
7979
SchedulerName string `json:"schedulerName,omitempty"`
8080
BuildTimeout *int64 `json:"buildTimeout,omitempty"`
8181
CreationTime string `json:"creationTime,omitempty"`
82+
VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
83+
Volumes []corev1.Volume `json:"volumes,omitempty"`
8284
}
8385

8486
// +k8s:openapi-gen=true

pkg/git/fetch.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ func (f Fetcher) Fetch(dir, gitURL, gitRevision, metadataDir string) error {
6262
}
6363

6464
err = remote.Fetch(&gogit.FetchOptions{
65-
Depth: 1,
6665
RefSpecs: []config.RefSpec{config.RefSpec(resolvedSourceConfig.Git.Revision + ":" + resolvedSourceConfig.Git.Revision)},
6766
Auth: auth,
6867
Depth: 1,

0 commit comments

Comments
 (0)