Add affinity support (#1170)

* Add support for setting nodeSelector/affinity/tolerations on all deployments of fission components.
* Add extraCoreComponmentPodConfig helm value to allow setting of affinty/tolerations/nodeSelectors/etc on core pods
This commit is contained in:
Laurence Hudson
2019-05-22 17:09:29 +08:00
committed by Ta-Ching Chen
parent 4632269314
commit 897771546b
5 changed files with 96 additions and 2 deletions
+1
View File
@@ -64,6 +64,7 @@ Parameter | Description | Default
`debugEnv` | If there are any pod specialization errors when a function is triggered and this flag is set to true, the error summary is returned as part of http response | `true` `debugEnv` | If there are any pod specialization errors when a function is triggered and this flag is set to true, the error summary is returned as part of http response | `true`
`prometheusDeploy` | Set to true if prometheus needs to be deployed along with fission | `true` in `fission-all`, `false` in `fission-core` `prometheusDeploy` | Set to true if prometheus needs to be deployed along with fission | `true` in `fission-all`, `false` in `fission-core`
`canaryDeployment.enabled` | Set to true if you need canary deployment feature | `true` in `fission-all`, `false` in `fission-core` `canaryDeployment.enabled` | Set to true if you need canary deployment feature | `true` in `fission-all`, `false` in `fission-core`
`extraCoreComponmentPodConfig` | Extend the container specs for the core fission pods. Can be used to add things like affinty/tolerations/nodeSelectors/etc. | None
### Extra configuration for `fission-all` ### Extra configuration for `fission-all`
+37 -1
View File
@@ -163,6 +163,9 @@ spec:
- name: config-volume - name: config-volume
configMap: configMap:
name: feature-config name: feature-config
{{- if .Values.extraCoreComponmentPodConfig }}
{{ toYaml .Values.extraCoreComponmentPodConfig | indent 6 -}}
{{- end }}
--- ---
apiVersion: extensions/v1beta1 apiVersion: extensions/v1beta1
kind: Deployment kind: Deployment
@@ -235,6 +238,9 @@ spec:
- containerPort: 8888 - containerPort: 8888
name: http name: http
serviceAccount: fission-svc serviceAccount: fission-svc
{{- if .Values.extraCoreComponmentPodConfig }}
{{ toYaml .Values.extraCoreComponmentPodConfig | indent 6 -}}
{{- end }}
--- ---
apiVersion: v1 apiVersion: v1
@@ -316,6 +322,9 @@ spec:
- containerPort: 8888 - containerPort: 8888
name: http name: http
serviceAccount: fission-svc serviceAccount: fission-svc
{{- if .Values.extraCoreComponmentPodConfig }}
{{ toYaml .Values.extraCoreComponmentPodConfig | indent 6 -}}
{{- end }}
--- ---
apiVersion: extensions/v1beta1 apiVersion: extensions/v1beta1
@@ -359,6 +368,9 @@ spec:
- name: FETCHER_MAXMEM - name: FETCHER_MAXMEM
value: {{ .Values.fetcherMaxMem | default "128Mi" | quote }} value: {{ .Values.fetcherMaxMem | default "128Mi" | quote }}
serviceAccount: fission-svc serviceAccount: fission-svc
{{- if .Values.extraCoreComponmentPodConfig }}
{{ toYaml .Values.extraCoreComponmentPodConfig | indent 6 -}}
{{- end }}
--- ---
apiVersion: extensions/v1beta1 apiVersion: extensions/v1beta1
@@ -384,6 +396,9 @@ spec:
- name: TRACING_SAMPLING_RATE - name: TRACING_SAMPLING_RATE
value: {{ .Values.traceSamplingRate | default "0.5" | quote }} value: {{ .Values.traceSamplingRate | default "0.5" | quote }}
serviceAccount: fission-svc serviceAccount: fission-svc
{{- if .Values.extraCoreComponmentPodConfig }}
{{ toYaml .Values.extraCoreComponmentPodConfig | indent 6 -}}
{{- end }}
--- ---
apiVersion: v1 apiVersion: v1
@@ -432,6 +447,9 @@ spec:
secretKeyRef: secretKeyRef:
name: influxdb name: influxdb
key: password key: password
{{- if .Values.extraCoreComponmentPodConfig }}
{{ toYaml .Values.extraCoreComponmentPodConfig | indent 6 -}}
{{- end }}
{{- if .Values.heapster }} {{- if .Values.heapster }}
--- ---
@@ -497,6 +515,9 @@ spec:
command: ["/fission-bundle"] command: ["/fission-bundle"]
args: ["--timer", "--routerUrl", "http://router.{{ .Release.Namespace }}"] args: ["--timer", "--routerUrl", "http://router.{{ .Release.Namespace }}"]
serviceAccount: fission-svc serviceAccount: fission-svc
{{- if .Values.extraCoreComponmentPodConfig }}
{{ toYaml .Values.extraCoreComponmentPodConfig | indent 6 -}}
{{- end }}
# #
# This is commented out until fission-ui allows configuring the # This is commented out until fission-ui allows configuring the
@@ -554,6 +575,9 @@ spec:
- containerPort: 4222 - containerPort: 4222
hostPort: 4222 hostPort: 4222
protocol: TCP protocol: TCP
{{- if .Values.extraCoreComponmentPodConfig }}
{{ toYaml .Values.extraCoreComponmentPodConfig | indent 6 -}}
{{- end }}
--- ---
apiVersion: extensions/v1beta1 apiVersion: extensions/v1beta1
kind: Deployment kind: Deployment
@@ -583,6 +607,9 @@ spec:
- name: TRACING_SAMPLING_RATE - name: TRACING_SAMPLING_RATE
value: {{ .Values.traceSamplingRate | default "0.5" | quote }} value: {{ .Values.traceSamplingRate | default "0.5" | quote }}
serviceAccount: fission-svc serviceAccount: fission-svc
{{- if .Values.extraCoreComponmentPodConfig }}
{{ toYaml .Values.extraCoreComponmentPodConfig | indent 6 -}}
{{- end }}
{{- end }} {{- end }}
{{- if .Values.kafka.enabled }} {{- if .Values.kafka.enabled }}
@@ -617,6 +644,9 @@ spec:
- name: TRACING_SAMPLING_RATE - name: TRACING_SAMPLING_RATE
value: {{ .Values.traceSamplingRate | default "0.5" | quote }} value: {{ .Values.traceSamplingRate | default "0.5" | quote }}
serviceAccount: fission-svc serviceAccount: fission-svc
{{- if .Values.extraCoreComponmentPodConfig }}
{{ toYaml .Values.extraCoreComponmentPodConfig | indent 6 -}}
{{- end }}
{{- end }} {{- end }}
{{- if .Values.azureStorageQueue.enabled }} {{- if .Values.azureStorageQueue.enabled }}
@@ -654,6 +684,9 @@ spec:
name: azure-storage-account-key name: azure-storage-account-key
key: key key: key
serviceAccount: fission-svc serviceAccount: fission-svc
{{- if .Values.extraCoreComponmentPodConfig }}
{{ toYaml .Values.extraCoreComponmentPodConfig | indent 6 -}}
{{- end }}
{{- end }} {{- end }}
--- ---
apiVersion: extensions/v1beta1 apiVersion: extensions/v1beta1
@@ -705,4 +738,7 @@ spec:
claimName: {{ .Values.persistence.existingClaim | default "fission-storage-pvc" }} claimName: {{ .Values.persistence.existingClaim | default "fission-storage-pvc" }}
{{- else }} {{- else }}
emptyDir: {} emptyDir: {}
{{- end -}} {{- end }}
{{- if .Values.extraCoreComponmentPodConfig }}
{{ toYaml .Values.extraCoreComponmentPodConfig | indent 6 -}}
{{- end }}
+18
View File
@@ -106,6 +106,24 @@ persistence:
accessMode: ReadWriteOnce accessMode: ReadWriteOnce
size: 8Gi size: 8Gi
## Extend the container specs for the core fission pods.
## Can be used to add things like affinty/tolerations/nodeSelectors/etc.
## For example:
## extraCoreComponmentPodConfig:
## affinity:
## nodeAffinity:
## requiredDuringSchedulingIgnoredDuringExecution:
## nodeSelectorTerms:
## - matchExpressions:
## - key: capability
## operator: In
## values:
## - app
extraCoreComponmentPodConfig:
# affinity:
# tolerations:
# nodeSelector:
## Analytics let us count how many people installed fission. Set to ## Analytics let us count how many people installed fission. Set to
## false to disable analytics. ## false to disable analytics.
analytics: true analytics: true
+22 -1
View File
@@ -164,6 +164,9 @@ spec:
- name: config-volume - name: config-volume
configMap: configMap:
name: feature-config name: feature-config
{{- if .Values.extraCoreComponmentPodConfig }}
{{ toYaml .Values.extraCoreComponmentPodConfig | indent 6 -}}
{{- end }}
--- ---
apiVersion: extensions/v1beta1 apiVersion: extensions/v1beta1
@@ -232,6 +235,9 @@ spec:
initialDelaySeconds: 35 initialDelaySeconds: 35
periodSeconds: 5 periodSeconds: 5
serviceAccount: fission-svc serviceAccount: fission-svc
{{- if .Values.extraCoreComponmentPodConfig }}
{{ toYaml .Values.extraCoreComponmentPodConfig | indent 6 -}}
{{- end }}
--- ---
apiVersion: v1 apiVersion: v1
@@ -306,6 +312,9 @@ spec:
initialDelaySeconds: 35 initialDelaySeconds: 35
periodSeconds: 5 periodSeconds: 5
serviceAccount: fission-svc serviceAccount: fission-svc
{{- if .Values.extraCoreComponmentPodConfig }}
{{ toYaml .Values.extraCoreComponmentPodConfig | indent 6 -}}
{{- end }}
--- ---
apiVersion: extensions/v1beta1 apiVersion: extensions/v1beta1
@@ -349,6 +358,9 @@ spec:
- name: FETCHER_MAXMEM - name: FETCHER_MAXMEM
value: {{ .Values.fetcherMaxMem | default "128Mi" | quote }} value: {{ .Values.fetcherMaxMem | default "128Mi" | quote }}
serviceAccount: fission-svc serviceAccount: fission-svc
{{- if .Values.extraCoreComponmentPodConfig }}
{{ toYaml .Values.extraCoreComponmentPodConfig | indent 6 -}}
{{- end }}
--- ---
apiVersion: extensions/v1beta1 apiVersion: extensions/v1beta1
@@ -374,6 +386,9 @@ spec:
- name: TRACING_SAMPLING_RATE - name: TRACING_SAMPLING_RATE
value: {{ .Values.traceSamplingRate | default "0.5" | quote }} value: {{ .Values.traceSamplingRate | default "0.5" | quote }}
serviceAccount: fission-svc serviceAccount: fission-svc
{{- if .Values.extraCoreComponmentPodConfig }}
{{ toYaml .Values.extraCoreComponmentPodConfig | indent 6 -}}
{{- end }}
--- ---
apiVersion: extensions/v1beta1 apiVersion: extensions/v1beta1
@@ -399,6 +414,9 @@ spec:
- name: TRACING_SAMPLING_RATE - name: TRACING_SAMPLING_RATE
value: {{ .Values.traceSamplingRate | default "0.5" | quote }} value: {{ .Values.traceSamplingRate | default "0.5" | quote }}
serviceAccount: fission-svc serviceAccount: fission-svc
{{- if .Values.extraCoreComponmentPodConfig }}
{{ toYaml .Values.extraCoreComponmentPodConfig | indent 6 -}}
{{- end }}
--- ---
apiVersion: extensions/v1beta1 apiVersion: extensions/v1beta1
@@ -437,4 +455,7 @@ spec:
claimName: {{ .Values.persistence.existingClaim | default "fission-storage-pvc" }} claimName: {{ .Values.persistence.existingClaim | default "fission-storage-pvc" }}
{{- else }} {{- else }}
emptyDir: {} emptyDir: {}
{{- end -}} {{- end }}
{{- if .Values.extraCoreComponmentPodConfig }}
{{ toYaml .Values.extraCoreComponmentPodConfig | indent 6 -}}
{{- end }}
+18
View File
@@ -68,6 +68,24 @@ persistence:
accessMode: ReadWriteOnce accessMode: ReadWriteOnce
size: 8Gi size: 8Gi
## Extend the container specs for the core fission pods.
## Can be used to add things like affinty/tolerations/nodeSelectors/etc.
## For example:
## extraCoreComponmentPodConfig:
## affinity:
## nodeAffinity:
## requiredDuringSchedulingIgnoredDuringExecution:
## nodeSelectorTerms:
## - matchExpressions:
## - key: capability
## operator: In
## values:
## - app
extraCoreComponmentPodConfig:
# affinity:
# tolerations:
# nodeSelector:
## Analytics let us count how many people installed fission. Set to ## Analytics let us count how many people installed fission. Set to
## false to disable analytics. ## false to disable analytics.
analytics: true analytics: true