可以通过手动修改Helm模板来覆盖默认的volumes和volumeMounts配置。在values.yaml中增加如下内容:
# override default volumes and volumeMounts
extraVolumes:
- name: custom-volume
# replace with your own volume definition
hostPath:
path: /path/to/custom/volume
extraVolumeMounts:
- name: custom-volume
# replace with the container path you want to mount
mountPath: /mnt/custom-volume
然后在Deployment模板中使用extraVolumes和extraVolumeMounts来替换默认的配置:
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "airflow.fullname" . }}
labels:
{{- include "airflow.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "airflow.selectorLabels" . | nindent 6 }}
template:
metadata:
{{- with .Values.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "airflow.selectorLabels" . | nindent 8 }}
spec:
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
ports:
- containerPort: 8080
name: web
protocol: TCP
readinessProbe:
...
livenessProbe:
...
env:
...
volumeMounts:
{{- range .Values.extraVolumeMounts }}
- name: {{ .name }}
mountPath: {{ .mountPath }}
readOnly: {{ .readOnly | default false }}
{{- end }}
volumes:
{{- range .Values.extraVolumes }}
- name: {{ .name }}
{{- with .hostPath }}
hostPath:
path: {{ .path }}
type: {{ .type | default "Directory" }}
{{- end }}
{{- end }}
这样就可以在Airflow的Pod中使用自定义的volumes和volumeMounts了。
示例代码:https://github.com/apache/airflow-helm-chart/tree/main/charts/airflow#using-extra-volumes-and-volumemounts