diff --git a/generator/deployment.go b/generator/deployment.go index b674cef..bfe5bfe 100644 --- a/generator/deployment.go +++ b/generator/deployment.go @@ -153,6 +153,9 @@ func (d *Deployment) AddContainer(service types.ServiceConfig) { Ports: ports, Name: service.Name, ImagePullPolicy: corev1.PullIfNotPresent, + Resources: corev1.ResourceRequirements{ + Requests: corev1.ResourceList{}, + }, } if _, ok := d.chart.Values[service.Name]; !ok { d.chart.Values[service.Name] = NewValue(service, d.isMainApp) @@ -584,6 +587,16 @@ func (d *Deployment) Yaml() ([]byte, error) { line = pre + "\n" + line + "\n" + post } + if strings.Contains(line, "resources: {}") { + spaces = strings.Repeat(" ", utils.CountStartingSpaces(line)) + pre := spaces + `{{- if .Values.` + serviceName + `.resources }}` + post := spaces + "{{- end }}" + + line = strings.ReplaceAll(line, "resources: {}", "resources:") + line += "\n" + spaces + " {{ .Values." + serviceName + ".resources | toYaml | nindent __indent__ }}" + line = pre + "\n" + line + "\n" + post + } + content[i] = line } diff --git a/generator/values.go b/generator/values.go index 725db51..7db405f 100644 --- a/generator/values.go +++ b/generator/values.go @@ -59,6 +59,7 @@ type Value struct { CronJob *CronJobValue `yaml:"cronjob,omitempty"` NodeSelector map[string]string `yaml:"nodeSelector"` ServiceAccount string `yaml:"serviceAccount"` + Resources map[string]any `yaml:"resources"` } // CronJobValue is a cronjob configuration that will be saved in values.yaml.