Skip to content

Commit 763639b

Browse files
committed
Enable user to provide spark job template as input for jobservice deployment
Signed-off-by: Khor Shu Heng <khor.heng@gojek.com>
1 parent 8d5518d commit 763639b

3 files changed

Lines changed: 40 additions & 2 deletions

File tree

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{{- if .Values.sparkOperator.enabled }}
2+
apiVersion: v1
3+
kind: ConfigMap
4+
metadata:
5+
name: {{ template "feast-jobservice.fullname" . }}-spark-template
6+
namespace: {{ .Release.Namespace }}
7+
labels:
8+
app: {{ template "feast-jobservice.name" . }}
9+
component: jobservice
10+
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
11+
release: {{ .Release.Name }}
12+
heritage: {{ .Release.Service }}
13+
data:
14+
jobTemplate.yaml: |
15+
{{- toYaml .Values.sparkOperator.jobTemplate | nindent 4 }}
16+
{{- end }}

infra/charts/feast/charts/feast-jobservice/templates/deployment.yaml

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,30 +37,43 @@ spec:
3737
{{- toYaml . | nindent 8 }}
3838
{{- end }}
3939

40-
{{- if .Values.secrets }}
40+
{{- if or .Values.secrets .Values.sparkOperator.enabled }}
4141
volumes:
42+
{{- end }}
4243
{{- range $secret := .Values.secrets }}
4344
- name: {{ $secret }}
4445
secret:
4546
secretName: {{ $secret }}
4647
{{- end }}
48+
{{- if .Values.sparkOperator.enabled }}
49+
- name: {{ template "feast-jobservice.fullname" . }}-spark-template
50+
configMap:
51+
name: {{ template "feast-jobservice.fullname" . }}-spark-template
4752
{{- end }}
4853

4954
containers:
5055
- name: {{ .Chart.Name }}
5156
image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
5257
imagePullPolicy: {{ .Values.image.pullPolicy }}
5358

54-
{{- if .Values.secrets }}
59+
{{- if or .Values.secrets .Values.sparkOperator.enabled }}
5560
volumeMounts:
61+
{{- end }}
5662
{{- range $secret := .Values.secrets }}
5763
- name: {{ $secret }}
5864
mountPath: "/etc/secrets/{{ $secret }}"
5965
readOnly: true
6066
{{- end }}
67+
{{- if .Values.sparkOperator.enabled }}
68+
- name: {{ template "feast-jobservice.fullname" . }}-spark-template
69+
mountPath: "/etc/configs"
6170
{{- end }}
6271

6372
env:
73+
{{- if .Values.sparkOperator.enabled }}
74+
- name: FEAST_SPARK_K8S_JOB_TEMPLATE_PATH
75+
value: /etc/configs/jobTemplate.yaml
76+
{{- end }}
6477
{{- range $key, $value := .Values.envOverrides }}
6578
- name: {{ printf "%s" $key | replace "." "_" | upper | quote }}
6679
{{- if eq (kindOf $value) "map" }}

infra/charts/feast/charts/feast-jobservice/values.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@ gcpServiceAccount:
2121
# gcpProjectId -- Project ID to use when using Google Cloud services such as BigQuery, Cloud Storage and Dataflow
2222
gcpProjectId: ""
2323

24+
sparkOperator:
25+
# sparkOperator.enabled -- Flag to create and mount custom job template on the jobservice deployment as configmap
26+
enabled: false
27+
# sparkOperator.jobTemplate -- Content of the job template, in yaml format
28+
jobTemplate: {}
29+
2430
prometheus:
2531
# prometheus.enabled -- Flag to enable scraping of metrics
2632
enabled: true
@@ -124,3 +130,6 @@ envOverrides: {}
124130

125131
# podLabels -- Labels to be added to Feast Job Service pods
126132
podLabels: {}
133+
134+
# secrets -- Arbitrary secrets to mount on the job service pod, on /etc/secrets/<secret name>
135+
secrets: []

0 commit comments

Comments
 (0)