@@ -32,18 +32,18 @@ type StatefulSetOpt struct {
3232 // files mounted at /etc/buildkitd
3333 ConfigFiles map [string ][]byte
3434
35- Rootless bool
36- NodeSelector map [string ]string
37- CustomAnnotations map [string ]string
38- CustomLabels map [string ]string
39- Tolerations []corev1.Toleration
40- RequestsCPU string
41- RequestsMemory string
42- RequestsEphemeralStorage string
43- LimitsCPU string
44- LimitsMemory string
45- LimitsEphemeralStorage string
46- Platforms []v1.Platform
35+ Rootless bool
36+ NodeSelector map [string ]string
37+ CustomAnnotations map [string ]string
38+ CustomLabels map [string ]string
39+ Tolerations []corev1.Toleration
40+ RequestsCPU string
41+ RequestsMemory string
42+ RequestsPersistentStorage resource. Quantity
43+ LimitsCPU string
44+ LimitsMemory string
45+ LimitsPersistentStorage string
46+ Platforms []v1.Platform
4747}
4848
4949const (
@@ -141,6 +141,30 @@ func NewStatefulSet(opt *StatefulSetOpt) (s *appsv1.StatefulSet, c []*corev1.Con
141141 Requests : corev1.ResourceList {},
142142 Limits : corev1.ResourceList {},
143143 },
144+ VolumeMounts : []corev1.VolumeMount {
145+ {
146+ Name : "data" ,
147+ ReadOnly : false ,
148+ MountPath : "/var/lib/buildkit" ,
149+ },
150+ },
151+ },
152+ },
153+ },
154+ },
155+ VolumeClaimTemplates : []corev1.PersistentVolumeClaim {
156+ {
157+ ObjectMeta : metav1.ObjectMeta {
158+ Name : "data" ,
159+ },
160+ Spec : corev1.PersistentVolumeClaimSpec {
161+ AccessModes : []corev1.PersistentVolumeAccessMode {
162+ corev1 .ReadWriteOnce ,
163+ },
164+ Resources : corev1.VolumeResourceRequirements {
165+ Requests : corev1.ResourceList {
166+ corev1 .ResourceStorage : opt .RequestsPersistentStorage ,
167+ },
144168 },
145169 },
146170 },
@@ -222,14 +246,6 @@ func NewStatefulSet(opt *StatefulSetOpt) (s *appsv1.StatefulSet, c []*corev1.Con
222246 s .Spec .Template .Spec .Containers [0 ].Resources .Requests [corev1 .ResourceMemory ] = reqMemory
223247 }
224248
225- if opt .RequestsEphemeralStorage != "" {
226- reqEphemeralStorage , err := resource .ParseQuantity (opt .RequestsEphemeralStorage )
227- if err != nil {
228- return nil , nil , err
229- }
230- s .Spec .Template .Spec .Containers [0 ].Resources .Requests [corev1 .ResourceEphemeralStorage ] = reqEphemeralStorage
231- }
232-
233249 if opt .LimitsCPU != "" {
234250 limCPU , err := resource .ParseQuantity (opt .LimitsCPU )
235251 if err != nil {
@@ -246,12 +262,14 @@ func NewStatefulSet(opt *StatefulSetOpt) (s *appsv1.StatefulSet, c []*corev1.Con
246262 s .Spec .Template .Spec .Containers [0 ].Resources .Limits [corev1 .ResourceMemory ] = limMemory
247263 }
248264
249- if opt .LimitsEphemeralStorage != "" {
250- limEphemeralStorage , err := resource .ParseQuantity (opt .LimitsEphemeralStorage )
265+ if opt .LimitsPersistentStorage != "" {
266+ limPersistentStorage , err := resource .ParseQuantity (opt .LimitsPersistentStorage )
251267 if err != nil {
252268 return nil , nil , err
253269 }
254- s .Spec .Template .Spec .Containers [0 ].Resources .Limits [corev1 .ResourceEphemeralStorage ] = limEphemeralStorage
270+ s .Spec .VolumeClaimTemplates [0 ].Spec .Resources .Limits = corev1.ResourceList {
271+ corev1 .ResourceStorage : limPersistentStorage ,
272+ }
255273 }
256274
257275 return
0 commit comments