From af2a01e52d8d1f1e2d575983ebf47eca69182d4e Mon Sep 17 00:00:00 2001 From: hhhhsc701 <56435672+hhhhsc701@users.noreply.github.com> Date: Tue, 25 Nov 2025 16:54:24 +0800 Subject: [PATCH] =?UTF-8?q?feature:=20milvus=20pvc=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E6=9C=AC=E5=9C=B0=E7=9B=AE=E5=BD=95=20(#105)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit feature: milvus pvc支持本地目录 --- .github/workflows/docker-image-kuberay.yml | 71 +++ .../kuberay-operator/templates/_helpers.tpl | 13 + .../templates/deployment.yaml | 2 +- deployment/helm/milvus/Chart.yaml | 4 +- deployment/helm/milvus/README.md | 2 +- .../etcd/charts/common/templates/_storage.tpl | 2 + .../charts/etcd/templates/deployment.yaml | 405 ++++++++++++++++++ .../milvus/charts/etcd/templates/pvc.yaml | 78 ++++ .../charts/etcd/templates/statefulset.yaml | 2 + .../helm/milvus/charts/etcd/values.yaml | 4 +- .../milvus/charts/minio/templates/pvc.yaml | 73 +++- .../helm/milvus/charts/minio/values.yaml | 2 - .../charts/prometheus-node-exporter/README.md | 2 +- .../prometheus-windows-exporter/README.md | 2 +- deployment/helm/milvus/templates/pvc.yaml | 129 +++++- deployment/helm/milvus/values.yaml | 18 +- 16 files changed, 759 insertions(+), 50 deletions(-) create mode 100644 .github/workflows/docker-image-kuberay.yml create mode 100644 deployment/helm/milvus/charts/etcd/templates/deployment.yaml create mode 100644 deployment/helm/milvus/charts/etcd/templates/pvc.yaml diff --git a/.github/workflows/docker-image-kuberay.yml b/.github/workflows/docker-image-kuberay.yml new file mode 100644 index 0000000..99c75aa --- /dev/null +++ b/.github/workflows/docker-image-kuberay.yml @@ -0,0 +1,71 @@ +name: Kuberay Docker Image CI + +on: + push: + branches: [ "main" ] + paths: + - '.github/workflows/docker-image-kuberay.yml' + pull_request: + branches: [ "main" ] + paths: + - '.github/workflows/docker-image-kuberay.yml' + workflow_dispatch: + workflow_call: + +jobs: + kuberay-push-amd: + name: Pull & Push Kuberay AMD Image + runs-on: ubuntu-latest + if: github.event_name != 'pull_request' + steps: + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: pull & push + run: | + LOWERCASE_REPO=$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]') + docker pull quay.io/kuberay/operator:v1.4.2 + docker tag quay.io/kuberay/operator:v1.4.2 ghcr.io/$LOWERCASE_REPO/quay.io/kuberay/operator:v1.4.2-amd64 + docker push ghcr.io/$LOWERCASE_REPO/quay.io/kuberay/operator:v1.4.2-amd64 + + kuberay-push-arm: + name: Pull & Push Kuberay ARM Image + runs-on: ubuntu-24.04-arm + if: github.event_name != 'pull_request' + steps: + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: pull & push + run: | + LOWERCASE_REPO=$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]') + docker pull quay.io/kuberay/operator:v1.4.2 + docker tag quay.io/kuberay/operator:v1.4.2 ghcr.io/$LOWERCASE_REPO/quay.io/kuberay/operator:v1.4.2-arm64 + docker push ghcr.io/$LOWERCASE_REPO/quay.io/kuberay/operator:v1.4.2-arm64 + + kuberay-manifest: + runs-on: ubuntu-latest + if: github.event_name != 'pull_request' + steps: + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: pull & push + run: | + LOWERCASE_REPO=$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]') + docker manifest create ghcr.io/$LOWERCASE_REPO/quay.io/kuberay/operator:v1.4.2 \ + ghcr.io/$LOWERCASE_REPO/quay.io/kuberay/operator:v1.4.2-arm64 \ + ghcr.io/$LOWERCASE_REPO/quay.io/kuberay/operator:v1.4.2-amd64 + docker manifest push ghcr.io/$LOWERCASE_REPO/quay.io/kuberay/operator:v1.4.2 \ No newline at end of file diff --git a/deployment/helm/datamate/charts/kuberay-operator/templates/_helpers.tpl b/deployment/helm/datamate/charts/kuberay-operator/templates/_helpers.tpl index 7490351..74522c8 100644 --- a/deployment/helm/datamate/charts/kuberay-operator/templates/_helpers.tpl +++ b/deployment/helm/datamate/charts/kuberay-operator/templates/_helpers.tpl @@ -320,3 +320,16 @@ rules: - watch {{- end -}} {{- end -}} + +{{/* +Name of image +*/}} +{{- define "kuberay.image" -}} +{{- $name := .Values.image.repository }} +{{- $tag := .Values.image.tag }} +{{- if .Values.global.image.repository }} +{{- .Values.global.image.repository | trimSuffix "/" }}/{{ $name }}:{{ $tag }} +{{- else }} +{{- $name }}:{{ $tag }} +{{- end }} +{{- end }} diff --git a/deployment/helm/datamate/charts/kuberay-operator/templates/deployment.yaml b/deployment/helm/datamate/charts/kuberay-operator/templates/deployment.yaml index e64d95c..fb0d5d9 100644 --- a/deployment/helm/datamate/charts/kuberay-operator/templates/deployment.yaml +++ b/deployment/helm/datamate/charts/kuberay-operator/templates/deployment.yaml @@ -55,7 +55,7 @@ spec: securityContext: {{- toYaml . | nindent 12 }} {{- end }} - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + image: "{{ include "kuberay.image" . }}" {{- with .Values.image.pullPolicy }} imagePullPolicy: {{ . }} {{- end }} diff --git a/deployment/helm/milvus/Chart.yaml b/deployment/helm/milvus/Chart.yaml index c77c26a..a5fd6bb 100644 --- a/deployment/helm/milvus/Chart.yaml +++ b/deployment/helm/milvus/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v1 -appVersion: 2.6.4 +appVersion: 2.6.5 description: Milvus is an open-source vector database built to power AI applications and vector similarity search. home: https://milvus.io/ @@ -18,4 +18,4 @@ maintainers: name: milvus sources: - https://github.com/zilliztech/milvus -version: 5.0.6 +version: 5.0.7 diff --git a/deployment/helm/milvus/README.md b/deployment/helm/milvus/README.md index 85a2cea..65add13 100644 --- a/deployment/helm/milvus/README.md +++ b/deployment/helm/milvus/README.md @@ -335,7 +335,7 @@ The following table lists the configurable parameters of the Milvus Service and | `route.annotations` | Route annotations | `{}` | | `route.labels` | Route labels | `{}` | | `image.all.repository` | Image repository | `milvusdb/milvus` | -| `image.all.tag` | Image tag | `v2.6.4` | +| `image.all.tag` | Image tag | `v2.6.5` | | `image.all.pullPolicy` | Image pull policy | `IfNotPresent` | | `image.all.pullSecrets` | Image pull secrets | `{}` | | `image.tools.repository` | Config image repository | `milvusdb/milvus-config-tool` | diff --git a/deployment/helm/milvus/charts/etcd/charts/common/templates/_storage.tpl b/deployment/helm/milvus/charts/etcd/charts/common/templates/_storage.tpl index 60e2a84..58c2a0a 100644 --- a/deployment/helm/milvus/charts/etcd/charts/common/templates/_storage.tpl +++ b/deployment/helm/milvus/charts/etcd/charts/common/templates/_storage.tpl @@ -14,7 +14,9 @@ Return the proper Storage Class {{- if $storageClass -}} {{- if (eq "-" $storageClass) -}} +{{- /* {{- printf "storageClassName: \"\"" -}} +*/}} {{- else }} {{- printf "storageClassName: %s" $storageClass -}} {{- end -}} diff --git a/deployment/helm/milvus/charts/etcd/templates/deployment.yaml b/deployment/helm/milvus/charts/etcd/templates/deployment.yaml new file mode 100644 index 0000000..4b3c13c --- /dev/null +++ b/deployment/helm/milvus/charts/etcd/templates/deployment.yaml @@ -0,0 +1,405 @@ +{{- if eq (.Values.workload | lower) "deployment" }} +apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }} +kind: Deployment +metadata: + name: {{ include "common.names.fullname" . }} + namespace: {{ .Release.Namespace | quote }} + labels: {{- include "common.labels.standard" . | nindent 4 }} + {{- if .Values.commonLabels }} + {{- include "common.tplvalues.render" ( dict "value" .Values.commonLabels "context" $ ) | nindent 4 }} + {{- end }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: {{- include "common.labels.matchLabels" . | nindent 6 }} + strategy: {{- include "common.tplvalues.render" (dict "value" .Values.updateStrategy "context" $ ) | nindent 4 }} + template: + metadata: + labels: {{- include "common.labels.standard" . | nindent 8 }} + {{- if .Values.podLabels }} + {{- include "common.tplvalues.render" (dict "value" .Values.podLabels "context" $) | nindent 8 }} + {{- end }} + annotations: + {{- if .Values.podAnnotations }} + {{- include "common.tplvalues.render" ( dict "value" .Values.podAnnotations "context" $) | nindent 8 }} + {{- end }} + {{- if and .Values.metrics.enabled .Values.metrics.podAnnotations }} + {{- include "common.tplvalues.render" ( dict "value" .Values.metrics.podAnnotations "context" $) | nindent 8 }} + {{- end }} + {{- if (include "etcd.createConfigmap" .) }} + checksum/configuration: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }} + {{- end }} + {{- if (include "etcd.token.createSecret" .) }} + checksum/token-secret: {{ include (print $.Template.BasePath "/token-secrets.yaml") . | sha256sum }} + {{- end }} + spec: + {{- include "etcd.imagePullSecrets" . | nindent 6 }} + {{- if .Values.hostAliases }} + hostAliases: {{- include "common.tplvalues.render" (dict "value" .Values.hostAliases "context" $) | nindent 8 }} + {{- end }} + {{- if .Values.affinity }} + affinity: {{- include "common.tplvalues.render" (dict "value" .Values.affinity "context" $) | nindent 8 }} + {{- else }} + affinity: + podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.podAffinityPreset "context" $) | nindent 10 }} + podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.podAntiAffinityPreset "context" $) | nindent 10 }} + nodeAffinity: {{- include "common.affinities.nodes" (dict "type" .Values.nodeAffinityPreset.type "key" .Values.nodeAffinityPreset.key "values" .Values.nodeAffinityPreset.values) | nindent 10 }} + {{- end }} + {{- if .Values.nodeSelector }} + nodeSelector: {{- include "common.tplvalues.render" (dict "value" .Values.nodeSelector "context" $) | nindent 8 }} + {{- end }} + {{- if .Values.tolerations }} + tolerations: {{- include "common.tplvalues.render" (dict "value" .Values.tolerations "context" $) | nindent 8 }} + {{- end }} + {{- if .Values.terminationGracePeriodSeconds }} + terminationGracePeriodSeconds: {{ .Values.terminationGracePeriodSeconds }} + {{- end }} + {{- if .Values.schedulerName }} + schedulerName: {{ .Values.schedulerName }} + {{- end }} + {{- if .Values.topologySpreadConstraints }} + topologySpreadConstraints: {{- include "common.tplvalues.render" (dict "value" .Values.topologySpreadConstraints "context" .) | nindent 8 }} + {{- end }} + {{- if .Values.priorityClassName }} + priorityClassName: {{ .Values.priorityClassName }} + {{- end }} + {{- if .Values.runtimeClassName }} + runtimeClassName: {{ .Values.runtimeClassName }} + {{- end }} + {{- if .Values.podSecurityContext.enabled }} + securityContext: {{- omit .Values.podSecurityContext "enabled" | toYaml | nindent 8 }} + {{- end }} + {{- if .Values.shareProcessNamespace }} + shareProcessNamespace: {{ .Values.shareProcessNamespace }} + {{- end }} + serviceAccountName: {{ include "etcd.serviceAccountName" $ | quote }} + {{- if or .Values.initContainers (and .Values.volumePermissions.enabled .Values.persistence.enabled) }} + initContainers: + {{- if .Values.initContainers }} + {{- include "common.tplvalues.render" (dict "value" .Values.initContainers "context" $) | nindent 8 }} + {{- end }} + {{- if and .Values.volumePermissions.enabled .Values.persistence.enabled }} + - name: volume-permissions + image: {{ include "etcd.volumePermissions.image" . }} + imagePullPolicy: {{ .Values.volumePermissions.image.pullPolicy | quote }} + command: + - /bin/bash + - -ec + - | + chown -R {{ .Values.containerSecurityContext.runAsUser }}:{{ .Values.podSecurityContext.fsGroup }} /bitnami/etcd + securityContext: + runAsUser: 0 + {{- if .Values.volumePermissions.resources }} + resources: {{- include "common.tplvalues.render" (dict "value" .Values.volumePermissions.resources "context" $) | nindent 12 }} + {{- end }} + volumeMounts: + - name: data + mountPath: /bitnami/etcd + {{- end }} + {{- end }} + containers: + {{- $replicaCount := int .Values.replicaCount }} + {{- $peerPort := int .Values.containerPorts.peer }} + {{- $etcdFullname := include "common.names.fullname" . }} + {{- $releaseNamespace := .Release.Namespace }} + {{- $etcdHeadlessServiceName := (printf "%s-%s" $etcdFullname "headless" | trunc 63 | trimSuffix "-") }} + {{- $clusterDomain := .Values.clusterDomain }} + {{- $etcdPeerProtocol := include "etcd.peerProtocol" . }} + {{- $etcdClientProtocol := include "etcd.clientProtocol" . }} + - name: etcd + image: {{ include "etcd.image" . }} + imagePullPolicy: {{ .Values.image.pullPolicy | quote }} + {{- if .Values.containerSecurityContext.enabled }} + securityContext: {{- omit .Values.containerSecurityContext "enabled" | toYaml | nindent 12 }} + {{- end }} + {{- if .Values.diagnosticMode.enabled }} + command: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.command "context" $) | nindent 12 }} + {{- else if .Values.command }} + command: {{- include "common.tplvalues.render" (dict "value" .Values.command "context" $) | nindent 12 }} + {{- end }} + {{- if .Values.diagnosticMode.enabled }} + args: {{- include "common.tplvalues.render" (dict "value" .Values.diagnosticMode.args "context" $) | nindent 12 }} + {{- else if .Values.args }} + args: {{- include "common.tplvalues.render" (dict "value" .Values.args "context" $) | nindent 12 }} + {{- end }} + env: + - name: BITNAMI_DEBUG + value: {{ ternary "true" "false" (or .Values.image.debug .Values.diagnosticMode.enabled) | quote }} + - name: MY_POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + - name: MY_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: MY_STS_NAME + value: {{ include "common.names.fullname" . | quote }} + - name: ETCDCTL_API + value: "3" + - name: ETCD_ON_K8S + value: "yes" + - name: ETCD_START_FROM_SNAPSHOT + value: {{ ternary "yes" "no" .Values.startFromSnapshot.enabled | quote }} + - name: ETCD_DISASTER_RECOVERY + value: {{ ternary "yes" "no" .Values.disasterRecovery.enabled | quote }} + - name: ETCD_NAME + value: "$(MY_POD_NAME)" + - name: ETCD_DATA_DIR + value: "/bitnami/etcd/data" + - name: ETCD_LOG_LEVEL + value: {{ ternary "debug" .Values.logLevel .Values.image.debug | quote }} + - name: ALLOW_NONE_AUTHENTICATION + value: {{ ternary "yes" "no" (and (not (or .Values.auth.rbac.create .Values.auth.rbac.enabled)) .Values.auth.rbac.allowNoneAuthentication) | quote }} + {{- if or .Values.auth.rbac.create .Values.auth.rbac.enabled }} + - name: ETCD_ROOT_PASSWORD + valueFrom: + secretKeyRef: + name: {{ include "etcd.secretName" . }} + key: {{ include "etcd.secretPasswordKey" . }} + {{- end }} + {{- if .Values.auth.token.enabled }} + - name: ETCD_AUTH_TOKEN + {{- if eq .Values.auth.token.type "jwt" }} + value: {{ printf "jwt,priv-key=/opt/bitnami/etcd/certs/token/%s,sign-method=%s,ttl=%s" .Values.auth.token.privateKey.filename .Values.auth.token.signMethod .Values.auth.token.ttl | quote }} + {{- else if eq .Values.auth.token.type "simple" }} + value: "simple" + {{- end }} + {{- end }} + # 警告:以下 Env Vars 依赖 StatefulSet 命名 (headless service 和 ordered names) + # 在 Deployment 中如果不修改副本数为 1,这些配置会导致集群发现失败。 + - name: ETCD_ADVERTISE_CLIENT_URLS + value: "{{ $etcdClientProtocol }}://$(MY_POD_NAME).{{ $etcdHeadlessServiceName }}.{{ .Release.Namespace }}.svc.{{ $clusterDomain }}:{{ .Values.containerPorts.client }},{{ $etcdClientProtocol }}://{{ $etcdFullname }}.{{ .Release.Namespace }}.svc.{{ $clusterDomain }}:{{ coalesce .Values.service.ports.client .Values.service.port }}" + - name: ETCD_LISTEN_CLIENT_URLS + value: "{{ $etcdClientProtocol }}://0.0.0.0:{{ .Values.containerPorts.client }}" + - name: ETCD_INITIAL_ADVERTISE_PEER_URLS + value: "{{ $etcdPeerProtocol }}://$(MY_POD_NAME).{{ $etcdHeadlessServiceName }}.{{ .Release.Namespace }}.svc.{{ $clusterDomain }}:{{ .Values.containerPorts.peer }}" + - name: ETCD_LISTEN_PEER_URLS + value: "{{ $etcdPeerProtocol }}://0.0.0.0:{{ .Values.containerPorts.peer }}" + {{- if .Values.autoCompactionMode }} + - name: ETCD_AUTO_COMPACTION_MODE + value: {{ .Values.autoCompactionMode | quote }} + {{- end }} + {{- if .Values.autoCompactionRetention }} + - name: ETCD_AUTO_COMPACTION_RETENTION + value: {{ .Values.autoCompactionRetention | quote }} + {{- end }} + {{- if .Values.maxProcs }} + - name: GOMAXPROCS + value: {{ .Values.maxProcs }} + {{- end }} + {{- if gt $replicaCount 1 }} + - name: ETCD_INITIAL_CLUSTER_TOKEN + value: "etcd-cluster-k8s" + - name: ETCD_INITIAL_CLUSTER_STATE + value: {{ default (ternary "new" "existing" .Release.IsInstall) .Values.initialClusterState | quote }} + {{- $initialCluster := list }} + {{- range $e, $i := until $replicaCount }} + {{- $initialCluster = append $initialCluster (printf "%s-%d=%s://%s-%d.%s.%s.svc.%s:%d" $etcdFullname $i $etcdPeerProtocol $etcdFullname $i $etcdHeadlessServiceName $releaseNamespace $clusterDomain $peerPort) }} + {{- end }} + - name: ETCD_INITIAL_CLUSTER + value: {{ join "," $initialCluster | quote }} + {{- end }} + - name: ETCD_CLUSTER_DOMAIN + value: {{ printf "%s.%s.svc.%s" $etcdHeadlessServiceName $releaseNamespace $clusterDomain | quote }} + {{- if and .Values.auth.client.secureTransport .Values.auth.client.useAutoTLS }} + - name: ETCD_AUTO_TLS + value: "true" + {{- else if .Values.auth.client.secureTransport }} + - name: ETCD_CERT_FILE + value: "/opt/bitnami/etcd/certs/client/{{ .Values.auth.client.certFilename }}" + - name: ETCD_KEY_FILE + value: "/opt/bitnami/etcd/certs/client/{{ .Values.auth.client.certKeyFilename }}" + {{- if .Values.auth.client.enableAuthentication }} + - name: ETCD_CLIENT_CERT_AUTH + value: "true" + - name: ETCD_TRUSTED_CA_FILE + value: "/opt/bitnami/etcd/certs/client/{{ .Values.auth.client.caFilename | default "ca.crt" }}" + {{- else if .Values.auth.client.caFilename }} + - name: ETCD_TRUSTED_CA_FILE + value: "/opt/bitnami/etcd/certs/client/{{ .Values.auth.client.caFilename | default "ca.crt" }}" + {{- end }} + {{- end }} + {{- if and .Values.auth.peer.secureTransport .Values.auth.peer.useAutoTLS }} + - name: ETCD_PEER_AUTO_TLS + value: "true" + {{- else if .Values.auth.peer.secureTransport }} + - name: ETCD_PEER_CERT_FILE + value: "/opt/bitnami/etcd/certs/peer/{{ .Values.auth.peer.certFilename }}" + - name: ETCD_PEER_KEY_FILE + value: "/opt/bitnami/etcd/certs/peer/{{ .Values.auth.peer.certKeyFilename }}" + {{- if .Values.auth.peer.enableAuthentication }} + - name: ETCD_PEER_CLIENT_CERT_AUTH + value: "true" + - name: ETCD_PEER_TRUSTED_CA_FILE + value: "/opt/bitnami/etcd/certs/peer/{{ .Values.auth.peer.caFilename | default "ca.crt" }}" + {{- else if .Values.auth.peer.caFilename }} + - name: ETCD_PEER_TRUSTED_CA_FILE + value: "/opt/bitnami/etcd/certs/peer/{{ .Values.auth.peer.caFilename | default "ca.crt" }}" + {{- end }} + {{- end }} + {{- if .Values.startFromSnapshot.enabled }} + - name: ETCD_INIT_SNAPSHOT_FILENAME + value: {{ .Values.startFromSnapshot.snapshotFilename | quote }} + - name: ETCD_INIT_SNAPSHOTS_DIR + value: {{ ternary "/snapshots" "/init-snapshot" (and .Values.disasterRecovery.enabled (not .Values.disasterRecovery.pvc.existingClaim)) | quote }} + {{- end }} + {{- if .Values.extraEnvVars }} + {{- include "common.tplvalues.render" (dict "value" .Values.extraEnvVars "context" $) | nindent 12 }} + {{- end }} + envFrom: + {{- if .Values.extraEnvVarsCM }} + - configMapRef: + name: {{ include "common.tplvalues.render" (dict "value" .Values.extraEnvVarsCM "context" $) }} + {{- end }} + {{- if .Values.extraEnvVarsSecret }} + - secretRef: + name: {{ include "common.tplvalues.render" (dict "value" .Values.extraEnvVarsSecret "context" $) }} + {{- end }} + ports: + - name: client + containerPort: {{ .Values.containerPorts.client }} + protocol: TCP + - name: peer + containerPort: {{ .Values.containerPorts.peer }} + protocol: TCP + {{- if not .Values.diagnosticMode.enabled }} + {{- if .Values.customLivenessProbe }} + livenessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customLivenessProbe "context" $) | nindent 12 }} + {{- else if .Values.livenessProbe.enabled }} + livenessProbe: + exec: + command: + - /opt/bitnami/scripts/etcd/healthcheck.sh + initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.livenessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} + successThreshold: {{ .Values.livenessProbe.successThreshold }} + failureThreshold: {{ .Values.livenessProbe.failureThreshold }} + {{- end }} + {{- if .Values.customReadinessProbe }} + readinessProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customReadinessProbe "context" $) | nindent 12 }} + {{- else if .Values.readinessProbe.enabled }} + readinessProbe: + exec: + command: + - /opt/bitnami/scripts/etcd/healthcheck.sh + initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.readinessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} + successThreshold: {{ .Values.readinessProbe.successThreshold }} + failureThreshold: {{ .Values.readinessProbe.failureThreshold }} + {{- end }} + {{- if .Values.customStartupProbe }} + startupProbe: {{- include "common.tplvalues.render" (dict "value" .Values.customStartupProbe "context" $) | nindent 12 }} + {{- else if .Values.startupProbe.enabled }} + startupProbe: + exec: + command: + - /opt/bitnami/scripts/etcd/healthcheck.sh + initialDelaySeconds: {{ .Values.startupProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.startupProbe.periodSeconds }} + timeoutSeconds: {{ .Values.startupProbe.timeoutSeconds }} + successThreshold: {{ .Values.startupProbe.successThreshold }} + failureThreshold: {{ .Values.startupProbe.failureThreshold }} + {{- end }} + {{- if .Values.lifecycleHooks }} + lifecycle: {{- include "common.tplvalues.render" (dict "value" .Values.lifecycleHooks "context" $) | nindent 12 }} + {{- else if and (gt $replicaCount 1) .Values.removeMemberOnContainerTermination }} + lifecycle: + preStop: + exec: + command: + - /opt/bitnami/scripts/etcd/prestop.sh + {{- end }} + {{- end }} + {{- if .Values.resources }} + resources: {{- include "common.tplvalues.render" (dict "value" .Values.resources "context" $) | nindent 12 }} + {{- end }} + volumeMounts: + - name: data + mountPath: /bitnami/etcd + {{- if and (eq .Values.auth.token.enabled true) (eq .Values.auth.token.type "jwt") }} + - name: etcd-jwt-token + mountPath: /opt/bitnami/etcd/certs/token/ + readOnly: true + {{- end }} + {{- if or (and .Values.startFromSnapshot.enabled (not .Values.disasterRecovery.enabled)) (and .Values.disasterRecovery.enabled .Values.startFromSnapshot.enabled .Values.disasterRecovery.pvc.existingClaim) }} + - name: init-snapshot-volume + mountPath: /init-snapshot + {{- end }} + {{- if or .Values.disasterRecovery.enabled (and .Values.disasterRecovery.enabled .Values.startFromSnapshot.enabled) }} + - name: snapshot-volume + mountPath: /snapshots + {{- if .Values.disasterRecovery.pvc.subPath }} + subPath: {{ .Values.disasterRecovery.pvc.subPath }} + {{- end }} + {{- end }} + {{- if or .Values.configuration .Values.existingConfigmap }} + - name: etcd-config + mountPath: /opt/bitnami/etcd/conf/ + {{- end }} + {{- if or .Values.auth.client.enableAuthentication (and .Values.auth.client.secureTransport (not .Values.auth.client.useAutoTLS )) }} + - name: etcd-client-certs + mountPath: /opt/bitnami/etcd/certs/client/ + readOnly: true + {{- end }} + {{- if or .Values.auth.peer.enableAuthentication (and .Values.auth.peer.secureTransport (not .Values.auth.peer.useAutoTLS )) }} + - name: etcd-peer-certs + mountPath: /opt/bitnami/etcd/certs/peer/ + readOnly: true + {{- end }} + {{- if .Values.extraVolumeMounts }} + {{- include "common.tplvalues.render" (dict "value" .Values.extraVolumeMounts "context" $) | nindent 12 }} + {{- end }} + {{- if .Values.sidecars }} + {{- include "common.tplvalues.render" (dict "value" .Values.sidecars "context" $) | nindent 8 }} + {{- end }} + volumes: + {{- if and (eq .Values.auth.token.enabled true) (eq .Values.auth.token.type "jwt") }} + - name: etcd-jwt-token + secret: + secretName: {{ include "etcd.token.secretName" . }} + defaultMode: 256 + {{- end }} + {{- if or (and .Values.startFromSnapshot.enabled (not .Values.disasterRecovery.enabled)) (and .Values.disasterRecovery.enabled .Values.startFromSnapshot.enabled .Values.disasterRecovery.pvc.existingClaim) }} + - name: init-snapshot-volume + persistentVolumeClaim: + claimName: {{ .Values.startFromSnapshot.existingClaim }} + {{- end }} + {{- if or .Values.disasterRecovery.enabled (and .Values.disasterRecovery.enabled .Values.startFromSnapshot.enabled) }} + - name: snapshot-volume + persistentVolumeClaim: + claimName: {{ include "etcd.disasterRecovery.pvc.name" . }} + {{- end }} + {{- if or .Values.configuration .Values.existingConfigmap }} + - name: etcd-config + configMap: + name: {{ include "etcd.configmapName" . }} + {{- end }} + {{- if or .Values.auth.client.enableAuthentication (and .Values.auth.client.secureTransport (not .Values.auth.client.useAutoTLS )) }} + - name: etcd-client-certs + secret: + secretName: {{ required "A secret containing the client certificates is required" (tpl .Values.auth.client.existingSecret .) }} + defaultMode: 256 + {{- end }} + {{- if or .Values.auth.peer.enableAuthentication (and .Values.auth.peer.secureTransport (not .Values.auth.peer.useAutoTLS )) }} + - name: etcd-peer-certs + secret: + secretName: {{ required "A secret containing the peer certificates is required" (tpl .Values.auth.peer.existingSecret .) }} + defaultMode: 256 + {{- end }} + {{- if .Values.extraVolumes }} + {{- include "common.tplvalues.render" (dict "value" .Values.extraVolumes "context" $) | nindent 8 }} + {{- end }} + - name: data + {{- if .Values.persistence.enabled }} + persistentVolumeClaim: + claimName: {{ .Values.persistence.existingClaim | default (include "common.names.fullname" .) }} + {{- else }} + emptyDir: {} + {{- end }} +{{- end }} \ No newline at end of file diff --git a/deployment/helm/milvus/charts/etcd/templates/pvc.yaml b/deployment/helm/milvus/charts/etcd/templates/pvc.yaml new file mode 100644 index 0000000..cf10b27 --- /dev/null +++ b/deployment/helm/milvus/charts/etcd/templates/pvc.yaml @@ -0,0 +1,78 @@ +{{- if eq (.Values.workload | lower) "deployment" }} +{{- if and .Values.persistence.storageClass (eq .Values.persistence.storageClass "local-storage") }} +apiVersion: v1 +kind: PersistentVolume +metadata: + name: {{ .Release.Namespace }}-{{ .Values.persistence.existingClaim | default (include "common.names.fullname" .) }}-pv + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + labels: {{- include "common.labels.standard" . | nindent 8 }} +spec: + capacity: + storage: {{ .Values.persistence.size | quote }} + volumeMode: Filesystem + accessModes: + {{- range .Values.persistence.accessModes }} + - {{ . | quote }} + {{- end }} + persistentVolumeReclaimPolicy: Delete + storageClassName: {{ include "common.storage.class" (dict "persistence" .Values.persistence "global" .Values.global) }} + local: # local类型 + path: {{ .Values.persistence.storagePath | default "/opt/milvus/data" }}/etcd + claimRef: + apiVersion: v1 + kind: PersistentVolumeClaim + name: {{ .Values.persistence.existingClaim | default (include "common.names.fullname" .) }} + namespace: {{ .Release.Namespace | quote }} + nodeAffinity: + required: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/hostname + operator: In + values: + - {{ .Values.persistence.storageNode }} + +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ .Values.persistence.existingClaim | default (include "common.names.fullname" .) }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + labels: {{- include "common.labels.standard" . | nindent 8 }} +spec: + accessModes: + {{- range .Values.persistence.accessModes }} + - {{ . | quote }} + {{- end }} + volumeName: {{ .Release.Namespace }}-{{ .Values.persistence.existingClaim | default (include "common.names.fullname" .) }}-pv + volumeMode: Filesystem + resources: + requests: + storage: {{ .Values.persistence.size | quote }} + {{ include "common.storage.class" (dict "persistence" .Values.persistence "global" .Values.global) }} + +{{- else }} + +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ .Values.persistence.existingClaim | default (include "common.names.fullname" .) }} + {{- if .Values.commonAnnotations }} + annotations: {{- include "common.tplvalues.render" ( dict "value" .Values.commonAnnotations "context" $ ) | nindent 4 }} + {{- end }} + labels: {{- include "common.labels.standard" . | nindent 8 }} +spec: + accessModes: + {{- range .Values.persistence.accessModes }} + - {{ . | quote }} + {{- end }} + {{ include "common.storage.class" (dict "persistence" .Values.persistence "global" .Values.global) }} + resources: + requests: + storage: {{ .Values.persistence.size | quote }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/deployment/helm/milvus/charts/etcd/templates/statefulset.yaml b/deployment/helm/milvus/charts/etcd/templates/statefulset.yaml index f276eb0..f2939b0 100644 --- a/deployment/helm/milvus/charts/etcd/templates/statefulset.yaml +++ b/deployment/helm/milvus/charts/etcd/templates/statefulset.yaml @@ -1,3 +1,4 @@ +{{- if eq (.Values.workload | lower) "statefulset" }} apiVersion: {{ include "common.capabilities.statefulset.apiVersion" . }} kind: StatefulSet metadata: @@ -425,3 +426,4 @@ spec: {{- end }} {{ include "common.storage.class" (dict "persistence" .Values.persistence "global" .Values.global) }} {{- end }} +{{- end }} \ No newline at end of file diff --git a/deployment/helm/milvus/charts/etcd/values.yaml b/deployment/helm/milvus/charts/etcd/values.yaml index d657ac1..4b4edda 100644 --- a/deployment/helm/milvus/charts/etcd/values.yaml +++ b/deployment/helm/milvus/charts/etcd/values.yaml @@ -486,9 +486,9 @@ topologySpreadConstraints: [] ## @param persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced ## @param persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted persistentVolumeClaimRetentionPolicy: - enabled: false + enabled: true whenScaled: Retain - whenDeleted: Retain + whenDeleted: Delete ## @section Traffic exposure parameters ## diff --git a/deployment/helm/milvus/charts/minio/templates/pvc.yaml b/deployment/helm/milvus/charts/minio/templates/pvc.yaml index 99f0fd4..c744429 100644 --- a/deployment/helm/milvus/charts/minio/templates/pvc.yaml +++ b/deployment/helm/milvus/charts/minio/templates/pvc.yaml @@ -1,5 +1,34 @@ {{- if eq .Values.mode "standalone" }} -{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }} +{{- if and .Values.persistence.storageClass (eq .Values.persistence.storageClass "local-storage") }} +apiVersion: v1 +kind: PersistentVolume +metadata: + name: {{ .Release.Namespace }}-{{ template "minio.fullname" . }}-pv +spec: + capacity: + storage: {{ .Values.persistence.size | quote }} + volumeMode: Filesystem + accessModes: + - {{ .Values.persistence.accessMode }} + persistentVolumeReclaimPolicy: Delete + storageClassName: {{ .Values.persistence.storageClass }} + local: # local类型 + path: {{ .Values.persistence.storagePath | default "/opt/milvus/data" }}/minio + claimRef: + apiVersion: v1 + kind: PersistentVolumeClaim + name: {{ template "minio.fullname" . }} + namespace: {{ .Release.Namespace }} + nodeAffinity: + required: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/hostname + operator: In + values: + - {{ .Values.persistence.storageNode }} + +--- apiVersion: v1 kind: PersistentVolumeClaim metadata: @@ -14,26 +43,38 @@ metadata: release: {{ .Release.Name }} heritage: {{ .Release.Service }} spec: -{{- if and .Values.nasgateway.enabled .Values.nasgateway.pv }} - selector: - matchLabels: - pv: {{ .Values.nasgateway.pv | quote }} -{{- end }} accessModes: - {{ .Values.persistence.accessMode | quote }} + volumeName: {{ .Release.Namespace }}-{{ template "minio.fullname" . }}-pv + volumeMode: Filesystem resources: requests: storage: {{ .Values.persistence.size | quote }} + storageClassName: {{ .Values.persistence.storageClass }} -{{- if .Values.persistence.storageClass }} -{{- if (eq "-" .Values.persistence.storageClass) }} - storageClassName: "" {{- else }} - storageClassName: "{{ .Values.persistence.storageClass }}" -{{- end }} -{{- end }} -{{- if .Values.persistence.VolumeName }} - volumeName: "{{ .Values.persistence.VolumeName }}" -{{- end }} -{{- end }} + +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ template "minio.fullname" . }} + {{- with .Values.persistence.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} + labels: + app: {{ template "minio.name" . }} + chart: {{ template "minio.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + accessModes: + - {{ .Values.persistence.accessMode | quote }} + {{- if .Values.persistence.storageClass }} + storageClassName: {{ .Values.persistence.storageClass }} + {{- end }} + resources: + requests: + storage: {{ .Values.persistence.size | quote }} {{- end }} +{{- end }} \ No newline at end of file diff --git a/deployment/helm/milvus/charts/minio/values.yaml b/deployment/helm/milvus/charts/minio/values.yaml index 13510ca..8ec27e2 100644 --- a/deployment/helm/milvus/charts/minio/values.yaml +++ b/deployment/helm/milvus/charts/minio/values.yaml @@ -121,8 +121,6 @@ trustedCertsSecret: "" ## persistence: enabled: true - annotations: - helm.sh/resource-policy: "keep" ## A manually managed Persistent Volume and Claim ## Requires persistence.enabled: true diff --git a/deployment/helm/milvus/charts/pulsar/charts/kube-prometheus-stack/charts/prometheus-node-exporter/README.md b/deployment/helm/milvus/charts/pulsar/charts/kube-prometheus-stack/charts/prometheus-node-exporter/README.md index ef83844..0f42be3 100644 --- a/deployment/helm/milvus/charts/pulsar/charts/kube-prometheus-stack/charts/prometheus-node-exporter/README.md +++ b/deployment/helm/milvus/charts/pulsar/charts/kube-prometheus-stack/charts/prometheus-node-exporter/README.md @@ -70,7 +70,7 @@ hostRootFsMount: ## Configuring -See [Customizing the Chart Before Installing](https://helm.sh/docs/intro/using_helm/#customizing-the-chart-before-installing). To see all configurable options with detailed comments, visit the chart's [values.yaml](./values.yaml), or run these configuration commands: +See [Customizing the Chart Before Installing](https://helm.sh/docs/intro/using_helm/#customizing-the-chart-before-installing). To see all configurable options with detailed comments, visit the chart's [values.yaml](values.yaml), or run these configuration commands: ```console helm show values prometheus-community/prometheus-node-exporter diff --git a/deployment/helm/milvus/charts/pulsar/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/README.md b/deployment/helm/milvus/charts/pulsar/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/README.md index 1da1c64..058659c 100644 --- a/deployment/helm/milvus/charts/pulsar/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/README.md +++ b/deployment/helm/milvus/charts/pulsar/charts/kube-prometheus-stack/charts/prometheus-windows-exporter/README.md @@ -35,7 +35,7 @@ _See [helm uninstall](https://helm.sh/docs/helm/helm_uninstall/) for command doc ## Configuring -See [Customizing the Chart Before Installing](https://helm.sh/docs/intro/using_helm/#customizing-the-chart-before-installing). To see all configurable options with detailed comments, visit the chart's [values.yaml](./values.yaml), or run these configuration commands: +See [Customizing the Chart Before Installing](https://helm.sh/docs/intro/using_helm/#customizing-the-chart-before-installing). To see all configurable options with detailed comments, visit the chart's [values.yaml](values.yaml), or run these configuration commands: ```console helm show values prometheus-community/prometheus-windows-exporter diff --git a/deployment/helm/milvus/templates/pvc.yaml b/deployment/helm/milvus/templates/pvc.yaml index 398e768..fa0a916 100644 --- a/deployment/helm/milvus/templates/pvc.yaml +++ b/deployment/helm/milvus/templates/pvc.yaml @@ -1,11 +1,40 @@ {{- if not .Values.cluster.enabled }} {{- $pvc := .Values.standalone.persistence.persistentVolumeClaim -}} {{- if and .Values.standalone.persistence.enabled (not $pvc.existingClaim) }} +{{- if and $pvc.storageClass (eq $pvc.storageClass "local-storage") }} +apiVersion: v1 +kind: PersistentVolume +metadata: + name: {{ .Release.Namespace }}-{{ printf "%s" (include "milvus.fullname" . | trunc 58)}}-pv +spec: + capacity: + storage: {{ $pvc.size | quote }} + volumeMode: Filesystem + accessModes: + - {{ $pvc.accessModes | quote }} + persistentVolumeReclaimPolicy: Delete + storageClassName: {{ $pvc.storageClass }} + local: # local类型 + path: {{ $pvc.storagePath | default "/opt/milvus/data" }}/milvus + claimRef: + apiVersion: v1 + kind: PersistentVolumeClaim + name: {{ printf "%s" (include "milvus.fullname" . | trunc 58)}} + namespace: {{ .Values.global.namespace | default "datamate" }} + nodeAffinity: + required: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/hostname + operator: In + values: + - {{ $pvc.storageNode }} + +--- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: {{ printf "%s" (include "milvus.fullname" . | trunc 58)}} - namespace: {{ .Release.Namespace }} {{- with .Values.standalone.persistence.annotations }} annotations: {{ toYaml . | indent 4 }} @@ -14,30 +43,75 @@ metadata: {{ include "milvus.labels" . | indent 4 }} spec: accessModes: - - {{ $pvc.accessModes | quote }} - {{- if $pvc.storageClass }} - {{- if eq "-" $pvc.storageClass }} - storageClassName: "" - {{- else }} + - {{ $pvc.accessModes | quote }} + volumeName: {{ .Release.Namespace }}-{{ printf "%s" (include "milvus.fullname" . | trunc 58)}}-pv + volumeMode: Filesystem + resources: + requests: + storage: {{ $pvc.size | quote }} + storageClassName: {{ $pvc.storageClass }} + +{{- else }} + +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ printf "%s" (include "milvus.fullname" . | trunc 58)}} +{{- with .Values.standalone.persistence.annotations }} + annotations: +{{ toYaml . | indent 4 }} +{{- end }} + labels: +{{ include "milvus.labels" . | indent 4 }} +spec: + accessModes: + - {{ $pvc.accessModes | quote }} + {{- if $pvc.storageClass }} storageClassName: {{ $pvc.storageClass }} - {{- end }} {{- end }} resources: requests: - storage: {{ $pvc.size }} + storage: {{ $pvc.size | quote }} {{- end }} {{- end }} {{- $pvc := .Values.log.persistence.persistentVolumeClaim -}} {{- if and .Values.log.persistence.enabled (not $pvc.existingClaim)}} +--- +{{- if and $pvc.storageClass (eq $pvc.storageClass "local-storage") }} +apiVersion: v1 +kind: PersistentVolume +metadata: + name: {{ .Release.Namespace }}-{{ printf "%s-logs" (include "milvus.fullname" . | trunc 58)}}-pv +spec: + capacity: + storage: {{ $pvc.size | quote }} + volumeMode: Filesystem + accessModes: + - {{ $pvc.accessModes | quote }} + persistentVolumeReclaimPolicy: Delete + storageClassName: {{ $pvc.storageClass }} + local: # local类型 + path: {{ $pvc.storagePath | default "/opt/milvus/data" }}/milvus-log + claimRef: + apiVersion: v1 + kind: PersistentVolumeClaim + name: {{ printf "%s-logs" (include "milvus.fullname" . | trunc 58)}} + namespace: {{ .Release.Namespace }} + nodeAffinity: + required: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/hostname + operator: In + values: + - {{ $pvc.storageNode }} --- - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: {{ printf "%s-logs" (include "milvus.fullname" . | trunc 58)}} - namespace: {{ .Release.Namespace }} {{- with .Values.log.persistence.annotations }} annotations: {{ toYaml . | indent 4 }} @@ -46,15 +120,36 @@ metadata: {{ include "milvus.labels" . | indent 4 }} spec: accessModes: - - {{ $pvc.accessModes | quote }} - {{- if $pvc.storageClass }} - {{- if eq "-" $pvc.storageClass }} - storageClassName: "" - {{- else }} + - {{ $pvc.accessModes | quote }} + volumeName: {{ .Release.Namespace }}-{{ printf "%s-logs" (include "milvus.fullname" . | trunc 58)}}-pv + volumeMode: Filesystem + resources: + requests: + storage: {{ $pvc.size | quote }} + storageClassName: {{ $pvc.storageClass }} + +{{- else }} + +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ printf "%s-logs" (include "milvus.fullname" . | trunc 58)}} +{{- with .Values.log.persistence.annotations }} + annotations: +{{ toYaml . | indent 4 }} +{{- end }} + labels: +{{ include "milvus.labels" . | indent 4 }} +spec: + accessModes: + - {{ $pvc.accessModes | quote }} + {{- if $pvc.storageClass }} storageClassName: {{ $pvc.storageClass }} - {{- end }} {{- end }} resources: requests: - storage: {{ $pvc.size }} + storage: {{ $pvc.size | quote }} +{{- end }} +{{- end }} + {{- end }} diff --git a/deployment/helm/milvus/values.yaml b/deployment/helm/milvus/values.yaml index 3a02670..3731964 100644 --- a/deployment/helm/milvus/values.yaml +++ b/deployment/helm/milvus/values.yaml @@ -11,7 +11,7 @@ cluster: image: all: repository: milvusdb/milvus - tag: v2.6.2 + tag: v2.6.5 pullPolicy: IfNotPresent ## Optionally specify an array of imagePullSecrets. ## Secrets must be manually created in the namespace. @@ -196,9 +196,7 @@ log: ## If true, create/use a Persistent Volume Claim ## If false, use emptyDir ## - enabled: false - annotations: - helm.sh/resource-policy: keep + enabled: true persistentVolumeClaim: existingClaim: "" ## Milvus Logs Persistent Volume Storage Class @@ -212,6 +210,8 @@ log: accessModes: ReadWriteMany size: 10Gi subPath: "" + storagePath: + storageNode: ## Heaptrack traces all memory allocations and annotates these events with stack traces. ## See more: https://github.com/KDE/heaptrack @@ -254,8 +254,6 @@ standalone: ## If false, use emptyDir ## enabled: true - annotations: - helm.sh/resource-policy: keep persistentVolumeClaim: existingClaim: "" ## Milvus Persistent Volume Storage Class @@ -268,6 +266,8 @@ standalone: accessModes: ReadWriteOnce size: 50Gi subPath: "" + storagePath: + storageNode: proxy: enabled: true @@ -627,7 +627,6 @@ attu: minio: enabled: true name: minio - replicas: 1 mode: standalone image: tag: "RELEASE.2024-12-18T13-15-44Z" @@ -657,6 +656,8 @@ minio: storageClass: accessMode: ReadWriteOnce size: 500Gi + storagePath: + storageNode: livenessProbe: enabled: true @@ -689,6 +690,7 @@ minio: etcd: enabled: true name: etcd + workload: statefulSet replicaCount: 1 pdb: create: false @@ -714,6 +716,8 @@ etcd: storageClass: accessMode: ReadWriteOnce size: 10Gi + storagePath: + storageNode: ## Change default timeout periods to mitigate zoobie probe process livenessProbe: