diff --git a/driver/kubernetes/factory.go b/driver/kubernetes/factory.go index f55885cec..f66974de2 100644 --- a/driver/kubernetes/factory.go +++ b/driver/kubernetes/factory.go @@ -137,10 +137,14 @@ func (f *factory) processDriverOpts(deploymentName string, namespace string, cfg deploymentOpt.RequestsCPU = v case "requests.memory": deploymentOpt.RequestsMemory = v + case "requests.ephemeral-storage": + deploymentOpt.RequestsEphemeralStorage = v case "limits.cpu": deploymentOpt.LimitsCPU = v case "limits.memory": deploymentOpt.LimitsMemory = v + case "limits.ephemeral-storage": + deploymentOpt.LimitsEphemeralStorage = v case "rootless": deploymentOpt.Rootless, err = strconv.ParseBool(v) if err != nil { diff --git a/driver/kubernetes/manifest/manifest.go b/driver/kubernetes/manifest/manifest.go index e745c5422..a4a6b2fc6 100644 --- a/driver/kubernetes/manifest/manifest.go +++ b/driver/kubernetes/manifest/manifest.go @@ -32,16 +32,18 @@ type DeploymentOpt struct { // files mounted at /etc/buildkitd ConfigFiles map[string][]byte - Rootless bool - NodeSelector map[string]string - CustomAnnotations map[string]string - CustomLabels map[string]string - Tolerations []corev1.Toleration - RequestsCPU string - RequestsMemory string - LimitsCPU string - LimitsMemory string - Platforms []v1.Platform + Rootless bool + NodeSelector map[string]string + CustomAnnotations map[string]string + CustomLabels map[string]string + Tolerations []corev1.Toleration + RequestsCPU string + RequestsMemory string + RequestsEphemeralStorage string + LimitsCPU string + LimitsMemory string + LimitsEphemeralStorage string + Platforms []v1.Platform } const ( @@ -205,6 +207,14 @@ func NewDeployment(opt *DeploymentOpt) (d *appsv1.Deployment, c []*corev1.Config d.Spec.Template.Spec.Containers[0].Resources.Requests[corev1.ResourceMemory] = reqMemory } + if opt.RequestsEphemeralStorage != "" { + reqEphemeralStorage, err := resource.ParseQuantity(opt.RequestsEphemeralStorage) + if err != nil { + return nil, nil, err + } + d.Spec.Template.Spec.Containers[0].Resources.Requests[corev1.ResourceEphemeralStorage] = reqEphemeralStorage + } + if opt.LimitsCPU != "" { limCPU, err := resource.ParseQuantity(opt.LimitsCPU) if err != nil { @@ -221,6 +231,14 @@ func NewDeployment(opt *DeploymentOpt) (d *appsv1.Deployment, c []*corev1.Config d.Spec.Template.Spec.Containers[0].Resources.Limits[corev1.ResourceMemory] = limMemory } + if opt.LimitsEphemeralStorage != "" { + limEphemeralStorage, err := resource.ParseQuantity(opt.LimitsEphemeralStorage) + if err != nil { + return nil, nil, err + } + d.Spec.Template.Spec.Containers[0].Resources.Limits[corev1.ResourceEphemeralStorage] = limEphemeralStorage + } + return }