From ef7d4ae385e1dd68a54679d4bb6a48de3ea21f81 Mon Sep 17 00:00:00 2001 From: xiekeyang Date: Wed, 13 Jun 2018 18:42:55 +0800 Subject: [PATCH] Make fetcher resource requests and limits configurable (#708) This change allows fetcher container resource requests and limits to be configurable. --- charts/fission-all/templates/deployment.yaml | 8 +++ charts/fission-core/templates/deployment.yaml | 8 +++ executor/util/util.go | 49 +++++++++++-------- 3 files changed, 44 insertions(+), 21 deletions(-) diff --git a/charts/fission-all/templates/deployment.yaml b/charts/fission-all/templates/deployment.yaml index 5f6d7c7f..bcc9e077 100644 --- a/charts/fission-all/templates/deployment.yaml +++ b/charts/fission-all/templates/deployment.yaml @@ -240,6 +240,14 @@ spec: value: "{{ .Values.pullPolicy }}" - name: ENABLE_ISTIO value: "{{ .Values.enableIstio }}" + - name: FETCHER_MINCPU + value: {{ .Values.fetcherMinCpu | default "10m" | quote }} + - name: FETCHER_MINMEM + value: {{ .Values.fetcherMinMem | default "16Mi" | quote }} + - name: FETCHER_MAXCPU + value: {{ .Values.fetcherMaxCpu | default "40m" | quote }} + - name: FETCHER_MAXMEM + value: {{ .Values.fetcherMaxMem | default "128Mi" | quote }} readinessProbe: httpGet: path: "/healthz" diff --git a/charts/fission-core/templates/deployment.yaml b/charts/fission-core/templates/deployment.yaml index b66b72f7..388b31ce 100644 --- a/charts/fission-core/templates/deployment.yaml +++ b/charts/fission-core/templates/deployment.yaml @@ -226,6 +226,14 @@ spec: value: "{{ .Values.pullPolicy }}" - name: ENABLE_ISTIO value: "{{ .Values.enableIstio }}" + - name: FETCHER_MINCPU + value: {{ .Values.fetcherMinCpu | default "10m" | quote }} + - name: FETCHER_MINMEM + value: {{ .Values.fetcherMinMem | default "16Mi" | quote }} + - name: FETCHER_MAXCPU + value: {{ .Values.fetcherMaxCpu | default "40m" | quote }} + - name: FETCHER_MAXMEM + value: {{ .Values.fetcherMaxMem | default "128Mi" | quote }} readinessProbe: httpGet: path: "/healthz" diff --git a/executor/util/util.go b/executor/util/util.go index dfcf84d1..1639ebdd 100644 --- a/executor/util/util.go +++ b/executor/util/util.go @@ -17,34 +17,41 @@ limitations under the License. package util import ( + "os" + "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/resource" ) -var resources map[string]resource.Quantity - -func init() { - resources = make(map[string]resource.Quantity) - mincpu, _ := resource.ParseQuantity("10m") - resources["mincpu"] = mincpu - minmem, _ := resource.ParseQuantity("16Mi") - resources["minmem"] = minmem - maxcpu, _ := resource.ParseQuantity("40m") - resources["maxcpu"] = maxcpu - maxmem, _ := resource.ParseQuantity("128Mi") - resources["maxmem"] = maxmem -} - func GetFetcherResources() (v1.ResourceRequirements, error) { - fetcherResources := v1.ResourceRequirements{ + mincpu, err := resource.ParseQuantity(os.Getenv("FETCHER_MINCPU")) + if err != nil { + return v1.ResourceRequirements{}, err + } + + minmem, err := resource.ParseQuantity(os.Getenv("FETCHER_MINMEM")) + if err != nil { + return v1.ResourceRequirements{}, err + } + + maxcpu, err := resource.ParseQuantity(os.Getenv("FETCHER_MAXCPU")) + if err != nil { + return v1.ResourceRequirements{}, err + } + + maxmem, err := resource.ParseQuantity(os.Getenv("FETCHER_MAXMEM")) + if err != nil { + return v1.ResourceRequirements{}, err + } + + return v1.ResourceRequirements{ Requests: map[v1.ResourceName]resource.Quantity{ - v1.ResourceCPU: resources["mincpu"], - v1.ResourceMemory: resources["minmem"], + v1.ResourceCPU: mincpu, + v1.ResourceMemory: minmem, }, Limits: map[v1.ResourceName]resource.Quantity{ - v1.ResourceCPU: resources["maxcpu"], - v1.ResourceMemory: resources["maxmem"], + v1.ResourceCPU: maxcpu, + v1.ResourceMemory: maxmem, }, - } - return fetcherResources, nil + }, nil }