Skip to content

Commit 40ef0fc

Browse files
committed
feat: add dev.resources
1 parent c5c0c24 commit 40ef0fc

File tree

3 files changed

+38
-0
lines changed

3 files changed

+38
-0
lines changed

pkg/devspace/config/versions/latest/schema.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -721,6 +721,7 @@ type DevContainer struct {
721721
Command []string `yaml:"command,omitempty" json:"command,omitempty"`
722722
Args []string `yaml:"args,omitempty" json:"args,omitempty"`
723723
WorkingDir string `yaml:"workingDir,omitempty" json:"workingDir,omitempty"`
724+
Resources *PodResources `yaml:"resources,omitempty" json:"resources,omitempty"`
724725
Env []EnvVar `yaml:"env,omitempty" json:"env,omitempty"`
725726
RestartHelperPath string `yaml:"restartHelperPath,omitempty" json:"restartHelperPath,omitempty"`
726727
DisableRestartHelper bool `yaml:"disableRestartHelper,omitempty" json:"disableRestartHelper,omitempty"`

pkg/devspace/devpod/devpod.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,9 @@ func needPodReplaceContainer(devContainer *latest.DevContainer) bool {
441441
if devContainer.WorkingDir != "" {
442442
return true
443443
}
444+
if devContainer.Resources != nil {
445+
return true
446+
}
444447

445448
return false
446449
}

pkg/devspace/services/podreplace/builder.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package podreplace
33
import (
44
"encoding/json"
55
"fmt"
6+
"github.com/loft-sh/devspace/pkg/devspace/build/builder/kaniko/util"
67
"strings"
78

89
"github.com/ghodss/yaml"
@@ -191,6 +192,37 @@ func modifyDevContainer(devPod *latest.DevPod, devContainer *latest.DevContainer
191192
return errors.Wrap(err, "replace working dir")
192193
}
193194

195+
err = replaceResources(devContainer, podTemplate)
196+
if err != nil {
197+
return errors.Wrap(err, "replace resources")
198+
}
199+
200+
return nil
201+
}
202+
203+
func replaceResources(devContainer *latest.DevContainer, podTemplate *corev1.PodTemplateSpec) error {
204+
if devContainer.Resources == nil {
205+
return nil
206+
}
207+
208+
index, container, err := getPodTemplateContainer(devContainer, podTemplate)
209+
if err != nil {
210+
return err
211+
}
212+
213+
limits, err := util.ConvertMap(devContainer.Resources.Limits)
214+
if err != nil {
215+
return errors.Wrap(err, "parse limits")
216+
}
217+
218+
requests, err := util.ConvertMap(devContainer.Resources.Requests)
219+
if err != nil {
220+
return errors.Wrap(err, "parse limits")
221+
}
222+
223+
container.Resources.Limits = limits
224+
container.Resources.Requests = requests
225+
podTemplate.Spec.Containers[index] = *container
194226
return nil
195227
}
196228

@@ -269,6 +301,8 @@ func replaceCommand(devPod *latest.DevPod, devContainer *latest.DevContainer, po
269301
MountPath: restart.ScriptPath,
270302
})
271303

304+
container.ReadinessProbe = nil
305+
container.LivenessProbe = nil
272306
container.Command = []string{restart.ScriptPath}
273307
container.Command = append(container.Command, devContainer.Command...)
274308
if devContainer.Args != nil {

0 commit comments

Comments
 (0)