Files
DataMate/deployment/helm/milvus/templates/indexnode-deployment.yaml
hhhhsc701 f3958f08d9 feature: 对接deer-flow (#54)
feature: 对接deer-flow
2025-11-04 20:30:40 +08:00

237 lines
8.6 KiB
YAML

{{- if and .Values.indexNode.enabled .Values.cluster.enabled }}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "milvus.indexnode.fullname" . }}
namespace: {{ .Release.Namespace }}
labels:
{{ include "milvus.labels" . | indent 4 }}
component: "indexnode"
{{ include "milvus.ud.labels" . | indent 4 }}
annotations:
{{ include "milvus.ud.annotations" . | indent 4 }}
spec:
{{- if ge (int .Values.indexNode.replicas) 0 }}
replicas: {{ .Values.indexNode.replicas }}
{{- end }}
{{- with .Values.indexNode.strategy }}
strategy:
{{- toYaml . | nindent 4 }}
{{- end }}
selector:
matchLabels:
{{ include "milvus.matchLabels" . | indent 6 }}
component: "indexnode"
template:
metadata:
labels:
{{ include "milvus.matchLabels" . | indent 8 }}
component: "indexnode"
{{ include "milvus.ud.labels" . | indent 8 }}
annotations:
{{- if .Values.indexNode.profiling.enabled }}
pyroscope.io/scrape: "true"
pyroscope.io/application-name: {{ template "milvus.indexnode.fullname" . }}
pyroscope.io/port: "9091"
{{- end }}
{{- if .Values.indexNode.annotations }}
{{- toYaml .Values.indexNode.annotations | nindent 8 }}
{{- end }}
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
{{ include "milvus.ud.annotations" . | indent 8 }}
spec:
serviceAccountName: {{ include "milvus.serviceAccount" . }}
{{- if .Values.indexNode.runtimeClassName }}
runtimeClassName: {{ .Values.indexNode.runtimeClassName }}
{{- end }}
{{- if .Values.image.all.pullSecrets }}
imagePullSecrets:
{{- range .Values.image.all.pullSecrets }}
- name: {{ . }}
{{- end }}
{{- end }}
initContainers:
{{- if .Values.indexNode.heaptrack.enabled }}
- name: heaptrack
command:
- /bin/bash
- -c
- "cp -r /opt/heaptrack /milvus/tools"
image: "{{ .Values.heaptrack.image.repository }}:{{ .Values.heaptrack.image.tag }}"
imagePullPolicy: {{ .Values.heaptrack.image.pullPolicy }}
{{ if and (.Values.containerSecurityContext) (not .Values.indexNode.containerSecurityContext) }}
securityContext:
{{- toYaml .Values.containerSecurityContext | nindent 12 }}
{{ end }}
{{ if .Values.indexNode.containerSecurityContext }}
securityContext:
{{- toYaml .Values.indexNode.containerSecurityContext | nindent 12 }}
{{ end }}
volumeMounts:
- mountPath: /milvus/tools
name: tools
{{- end }}
containers:
- name: indexnode
image: "{{ .Values.image.all.repository }}:{{ .Values.image.all.tag }}"
imagePullPolicy: {{ .Values.image.all.pullPolicy }}
{{ if and (.Values.containerSecurityContext) (not .Values.indexNode.containerSecurityContext) }}
securityContext:
{{- toYaml .Values.containerSecurityContext | nindent 12 }}
{{ end }}
{{ if .Values.indexNode.containerSecurityContext }}
securityContext:
{{- toYaml .Values.indexNode.containerSecurityContext | nindent 12 }}
{{ end }}
{{- if .Values.indexNode.heaptrack.enabled }}
args: [ "/milvus/tools/heaptrack/bin/heaptrack", "milvus", "run", "indexnode" ]
{{- else }}
args: [ "milvus", "run", "indexnode" ]
{{- end }}
env:
{{- if and .Values.streaming .Values.streaming.enabled }}
- name: MILVUS_STREAMING_SERVICE_ENABLED
value: "1"
{{- end }}
{{- if .Values.indexNode.heaptrack.enabled }}
- name: LD_LIBRARY_PATH
value: /milvus/tools/heaptrack/lib:/milvus/lib:/usr/lib
{{- end }}
{{- if .Values.indexNode.disk.size.enabled }}
- name: LOCAL_STORAGE_SIZE
valueFrom:
resourceFieldRef:
divisor: 1Gi
resource: limits.ephemeral-storage
{{- end }}
{{- if .Values.indexNode.extraEnv }}
{{- toYaml .Values.indexNode.extraEnv | nindent 8 }}
{{- end }}
ports:
- name: indexnode
containerPort: 21121
protocol: TCP
- name: metrics
containerPort: 9091
protocol: TCP
{{- if .Values.livenessProbe.enabled }}
livenessProbe:
tcpSocket:
port: metrics
initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
successThreshold: {{ .Values.livenessProbe.successThreshold }}
failureThreshold: {{ .Values.livenessProbe.failureThreshold }}
{{- end }}
{{- if .Values.readinessProbe.enabled }}
readinessProbe:
httpGet:
path: /healthz
port: metrics
initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
successThreshold: {{ .Values.readinessProbe.successThreshold }}
failureThreshold: {{ .Values.readinessProbe.failureThreshold }}
{{- end }}
resources:
{{- toYaml .Values.indexNode.resources | nindent 10 }}
volumeMounts:
{{- if .Values.customConfigMap }}
- name: milvus-config
mountPath: /milvus/configs/user.yaml
subPath: milvus.yaml
readOnly: true
{{- else }}
- name: milvus-config
mountPath: /milvus/configs/default.yaml
subPath: default.yaml
readOnly: true
- name: milvus-config
mountPath: /milvus/configs/user.yaml
subPath: user.yaml
readOnly: true
{{- end }}
{{- if .Values.log.persistence.enabled }}
- name: milvus-logs-disk
mountPath: {{ .Values.log.persistence.mountPath | quote }}
subPath: {{ .Values.log.persistence.persistentVolumeClaim.subPath | default "" }}
{{- end }}
- mountPath: /milvus/tools
name: tools
{{- if .Values.indexNode.disk.enabled }}
- mountPath: /var/lib/milvus/data
name: disk
{{- end }}
{{- if .Values.volumeMounts }}
{{- toYaml .Values.volumeMounts | nindent 8 }}
{{- end}}
{{- if and (.Values.nodeSelector) (not .Values.indexNode.nodeSelector) }}
nodeSelector:
{{ toYaml .Values.nodeSelector | indent 8 }}
{{- end }}
{{- if .Values.indexNode.nodeSelector }}
nodeSelector:
{{ toYaml .Values.indexNode.nodeSelector | indent 8 }}
{{- end }}
{{- if and (.Values.affinity) (not .Values.indexNode.affinity) }}
affinity:
{{ toYaml .Values.affinity | indent 8 }}
{{- end }}
{{- if .Values.indexNode.affinity }}
affinity:
{{ toYaml .Values.indexNode.affinity | indent 8 }}
{{- end }}
{{- if and (.Values.tolerations) (not .Values.indexNode.tolerations) }}
tolerations:
{{ toYaml .Values.tolerations | indent 8 }}
{{- end }}
{{- if .Values.indexNode.tolerations }}
tolerations:
{{ toYaml .Values.indexNode.tolerations | indent 8 }}
{{- end }}
{{- if and (.Values.topologySpreadConstraints) (not .Values.indexNode.topologySpreadConstraints) }}
topologySpreadConstraints:
{{ toYaml .Values.topologySpreadConstraints | indent 8 }}
{{- end }}
{{- if .Values.indexNode.topologySpreadConstraints }}
topologySpreadConstraints:
{{ toYaml .Values.indexNode.topologySpreadConstraints | indent 8 }}
{{- end }}
{{- if and (.Values.securityContext) (not .Values.indexNode.securityContext) }}
securityContext:
{{ toYaml .Values.securityContext | indent 8 }}
{{- end }}
{{- if .Values.indexNode.securityContext }}
securityContext:
{{ toYaml .Values.indexNode.securityContext | indent 8 }}
{{- end }}
volumes:
- name: milvus-config
configMap:
{{- if .Values.customConfigMap }}
name: {{ .Values.customConfigMap }}
{{- else }}
name: {{ template "milvus.fullname" . }}
{{- end }}
{{- if .Values.log.persistence.enabled }}
- name: milvus-logs-disk
persistentVolumeClaim:
claimName: {{ .Values.log.persistence.persistentVolumeClaim.existingClaim | default (printf "%s-logs" (include "milvus.fullname" . | trunc 58)) }}
{{- end }}
- name: tools
emptyDir: {}
{{- if .Values.indexNode.disk.enabled }}
- name: disk
emptyDir: {}
{{- end }}
{{- if .Values.volumes }}
{{- toYaml .Values.volumes | nindent 6 }}
{{- end}}
{{- end }}