## Enable or disable Milvus Cluster mode cluster: enabled: true image: all: repository: milvusdb/milvus tag: v2.2.13 pullPolicy: IfNotPresent ## Optionally specify an array of imagePullSecrets. ## Secrets must be manually created in the namespace. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ ## # pullSecrets: # - myRegistryKeySecretName tools: repository: milvusdb/milvus-config-tool tag: v0.1.1 pullPolicy: IfNotPresent # Global node selector # If set, this will apply to all milvus components # Individual components can be set to a different node selector nodeSelector: {} # Global tolerations # If set, this will apply to all milvus components # Individual components can be set to a different tolerations tolerations: [] # Global affinity # If set, this will apply to all milvus components # Individual components can be set to a different affinity affinity: {} # Global labels and annotations # If set, this will apply to all milvus components labels: {} annotations: {} # Extra configs for milvus.yaml # If set, this config will merge into milvus.yaml # Please follow the config structure in the milvus.yaml # at https://github.com/milvus-io/milvus/blob/master/configs/milvus.yaml # Note: this config will be the top priority which will override the config # in the image and helm chart. extraConfigFiles: user.yaml: |+ # For example enable rest http for milvus proxy # proxy: # http: # enabled: true ## Expose the Milvus service to be accessed from outside the cluster (LoadBalancer service). ## or access it from within the cluster (ClusterIP service). Set the service type and the port to serve it. ## ref: http://kubernetes.io/docs/user-guide/services/ ## service: type: ClusterIP port: 19530 portName: milvus nodePort: "" annotations: {} labels: {} ## List of IP addresses at which the Milvus service is available ## Ref: https://kubernetes.io/docs/user-guide/services/#external-ips ## externalIPs: [] # - externalIp1 # LoadBalancerSourcesRange is a list of allowed CIDR values, which are combined with ServicePort to # set allowed inbound rules on the security group assigned to the master load balancer loadBalancerSourceRanges: - 0.0.0.0/0 # Optionally assign a known public LB IP # loadBalancerIP: 1.2.3.4 ingress: enabled: false annotations: # Annotation example: set nginx ingress type # kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/backend-protocol: GRPC nginx.ingress.kubernetes.io/listen-ports-ssl: '[19530]' nginx.ingress.kubernetes.io/proxy-body-size: 4m nginx.ingress.kubernetes.io/ssl-redirect: "true" labels: {} rules: - host: "milvus-example.local" path: "/" pathType: "Prefix" # - host: "milvus-example2.local" # path: "/otherpath" # pathType: "Prefix" tls: [] # - secretName: chart-example-tls # hosts: # - milvus-example.local serviceAccount: create: false name: annotations: labels: metrics: enabled: true serviceMonitor: # Set this to `true` to create ServiceMonitor for Prometheus operator enabled: false interval: "30s" scrapeTimeout: "10s" # Additional labels that can be used so ServiceMonitor will be discovered by Prometheus additionalLabels: {} livenessProbe: enabled: true initialDelaySeconds: 90 periodSeconds: 30 timeoutSeconds: 5 successThreshold: 1 failureThreshold: 5 readinessProbe: enabled: true initialDelaySeconds: 90 periodSeconds: 10 timeoutSeconds: 5 successThreshold: 1 failureThreshold: 5 log: level: "info" file: maxSize: 300 # MB maxAge: 10 # day maxBackups: 20 format: "text" # text/json persistence: mountPath: "/milvus/logs" ## If true, create/use a Persistent Volume Claim ## If false, use emptyDir ## enabled: false annotations: helm.sh/resource-policy: keep persistentVolumeClaim: existingClaim: "" ## Milvus Logs Persistent Volume Storage Class ## If defined, storageClassName: ## If set to "-", storageClassName: "", which disables dynamic provisioning ## If undefined (the default) or set to null, no storageClassName spec is ## set, choosing the default provisioner. ## ReadWriteMany access mode required for milvus cluster. ## storageClass: accessModes: ReadWriteMany size: 10Gi subPath: "" ## Heaptrack traces all memory allocations and annotates these events with stack traces. ## See more: https://github.com/KDE/heaptrack ## Enable heaptrack in production is not recommended. heaptrack: image: repository: milvusdb/heaptrack tag: v0.1.0 pullPolicy: IfNotPresent standalone: replicas: 1 # Run standalone mode with replication disabled resources: {} # Set local storage size in resources # limits: # ephemeral-storage: 100Gi nodeSelector: {} affinity: {} tolerations: [] extraEnv: [] heaptrack: enabled: false disk: enabled: true size: enabled: false # Enable local storage size limit profiling: enabled: false # Enable live profiling ## Default message queue for milvus standalone ## Supported value: rocksmq, pulsar and kafka messageQueue: rocksmq persistence: mountPath: "/var/lib/milvus" ## If true, alertmanager will create/use a Persistent Volume Claim ## If false, use emptyDir ## enabled: true annotations: helm.sh/resource-policy: keep persistentVolumeClaim: existingClaim: "" ## Milvus Persistent Volume Storage Class ## If defined, storageClassName: ## If set to "-", storageClassName: "", which disables dynamic provisioning ## If undefined (the default) or set to null, no storageClassName spec is ## set, choosing the default provisioner. ## storageClass: accessModes: ReadWriteOnce size: 50Gi subPath: "" proxy: enabled: true replicas: 1 resources: {} nodeSelector: {} affinity: {} tolerations: [] extraEnv: [] heaptrack: enabled: false profiling: enabled: false # Enable live profiling http: enabled: true # whether to enable http rest server debugMode: enabled: false rootCoordinator: enabled: true # You can set the number of replicas greater than 1, only if enable active standby replicas: 1 # Run Root Coordinator mode with replication disabled resources: {} nodeSelector: {} affinity: {} tolerations: [] extraEnv: [] heaptrack: enabled: false profiling: enabled: false # Enable live profiling activeStandby: enabled: false # Enable active-standby when you set multiple replicas for root coordinator service: port: 53100 annotations: {} labels: {} clusterIP: "" queryCoordinator: enabled: true # You can set the number of replicas greater than 1, only if enable active standby replicas: 1 # Run Query Coordinator mode with replication disabled resources: {} nodeSelector: {} affinity: {} tolerations: [] extraEnv: [] heaptrack: enabled: false profiling: enabled: false # Enable live profiling activeStandby: enabled: false # Enable active-standby when you set multiple replicas for query coordinator service: port: 19531 annotations: {} labels: {} clusterIP: "" queryNode: enabled: true replicas: 1 resources: {} # Set local storage size in resources # limits: # ephemeral-storage: 100Gi nodeSelector: {} affinity: {} tolerations: [] extraEnv: [] heaptrack: enabled: false disk: enabled: true # Enable querynode load disk index, and search on disk index size: enabled: false # Enable local storage size limit profiling: enabled: false # Enable live profiling indexCoordinator: enabled: true # You can set the number of replicas greater than 1, only if enable active standby replicas: 1 # Run Index Coordinator mode with replication disabled resources: {} nodeSelector: {} affinity: {} tolerations: [] extraEnv: [] heaptrack: enabled: false profiling: enabled: false # Enable live profiling activeStandby: enabled: false # Enable active-standby when you set multiple replicas for index coordinator service: port: 31000 annotations: {} labels: {} clusterIP: "" indexNode: enabled: true replicas: 1 resources: {} # Set local storage size in resources # limits: # ephemeral-storage: 100Gi nodeSelector: {} affinity: {} tolerations: [] extraEnv: [] heaptrack: enabled: false profiling: enabled: false # Enable live profiling disk: enabled: true # Enable index node build disk vector index size: enabled: false # Enable local storage size limit dataCoordinator: enabled: true # You can set the number of replicas greater than 1, only if enable active standby replicas: 1 # Run Data Coordinator mode with replication disabled resources: {} nodeSelector: {} affinity: {} tolerations: [] extraEnv: [] heaptrack: enabled: false profiling: enabled: true # Enable live profiling activeStandby: enabled: false # Enable active-standby when you set multiple replicas for data coordinator service: port: 13333 annotations: {} labels: {} clusterIP: "" dataNode: enabled: true replicas: 1 resources: {} nodeSelector: {} affinity: {} tolerations: [] extraEnv: [] heaptrack: enabled: false profiling: enabled: false # Enable live profiling ## mixCoordinator contains all coord ## If you want to use mixcoord, enable this and disable all of other coords mixCoordinator: enabled: false # You can set the number of replicas greater than 1, only if enable active standby replicas: 1 # Run Mixture Coordinator mode with replication disabled resources: {} nodeSelector: {} affinity: {} tolerations: [] extraEnv: [] heaptrack: enabled: false profiling: enabled: false # Enable live profiling activeStandby: enabled: false # Enable active-standby when you set multiple replicas for Mixture coordinator service: annotations: {} labels: {} clusterIP: "" attu: enabled: false name: attu image: repository: zilliz/attu tag: v2.2.8 pullPolicy: IfNotPresent service: annotations: {} labels: {} type: ClusterIP port: 3000 # loadBalancerIP: "" resources: {} ingress: enabled: false annotations: {} # Annotation example: set nginx ingress type # kubernetes.io/ingress.class: nginx labels: {} hosts: - milvus-attu.local tls: [] # - secretName: chart-attu-tls # hosts: # - milvus-attu.local ## Configuration values for the minio dependency ## ref: https://github.com/minio/charts/blob/master/README.md ## minio: enabled: true name: minio mode: distributed image: tag: "RELEASE.2023-03-20T20-16-18Z" pullPolicy: IfNotPresent accessKey: minioadmin secretKey: minioadmin existingSecret: "" bucketName: "milvus-bucket" rootPath: file useIAM: false iamEndpoint: "" podDisruptionBudget: enabled: false resources: requests: memory: 2Gi gcsgateway: enabled: false replicas: 1 gcsKeyJson: "/etc/credentials/gcs_key.json" projectId: "" service: type: ClusterIP port: 9000 persistence: enabled: true existingClaim: "" storageClass: accessMode: ReadWriteOnce size: 500Gi livenessProbe: enabled: true initialDelaySeconds: 5 periodSeconds: 5 timeoutSeconds: 5 successThreshold: 1 failureThreshold: 5 readinessProbe: enabled: true initialDelaySeconds: 5 periodSeconds: 5 timeoutSeconds: 1 successThreshold: 1 failureThreshold: 5 startupProbe: enabled: true initialDelaySeconds: 0 periodSeconds: 10 timeoutSeconds: 5 successThreshold: 1 failureThreshold: 60 ## Configuration values for the etcd dependency ## ref: https://artifacthub.io/packages/helm/bitnami/etcd ## etcd: enabled: true name: etcd replicaCount: 3 pdb: create: false image: repository: "milvusdb/etcd" tag: "3.5.5-r2" pullPolicy: IfNotPresent service: type: ClusterIP port: 2379 peerPort: 2380 auth: rbac: enabled: false persistence: enabled: true storageClass: accessMode: ReadWriteOnce size: 10Gi ## Enable auto compaction ## compaction by every 1000 revision ## autoCompactionMode: revision autoCompactionRetention: "1000" ## Increase default quota to 4G ## extraEnvVars: - name: ETCD_QUOTA_BACKEND_BYTES value: "4294967296" - name: ETCD_HEARTBEAT_INTERVAL value: "500" - name: ETCD_ELECTION_TIMEOUT value: "2500" ## Configuration values for the pulsar dependency ## ref: https://github.com/apache/pulsar-helm-chart ## pulsar: enabled: false name: pulsar fullnameOverride: "" persistence: true maxMessageSize: 5242880 # 5 * 1024 * 1024 Bytes, Maximum size of each message in pulsar. rbac: enabled: false psp: false limit_to_namespace: true affinity: anti_affinity: false ## enableAntiAffinity: no components: zookeeper: true bookkeeper: true # bookkeeper - autorecovery autorecovery: true broker: true functions: false proxy: true toolset: false pulsar_manager: false monitoring: prometheus: false grafana: false node_exporter: false alert_manager: false images: broker: repository: apachepulsar/pulsar pullPolicy: IfNotPresent tag: 2.8.2 autorecovery: repository: apachepulsar/pulsar tag: 2.8.2 pullPolicy: IfNotPresent zookeeper: repository: apachepulsar/pulsar pullPolicy: IfNotPresent tag: 2.8.2 bookie: repository: apachepulsar/pulsar pullPolicy: IfNotPresent tag: 2.8.2 proxy: repository: apachepulsar/pulsar pullPolicy: IfNotPresent tag: 2.8.2 pulsar_manager: repository: apachepulsar/pulsar-manager pullPolicy: IfNotPresent tag: v0.1.0 zookeeper: resources: requests: memory: 1024Mi cpu: 0.3 configData: PULSAR_MEM: > -Xms1024m -Xmx1024m PULSAR_GC: > -Dcom.sun.management.jmxremote -Djute.maxbuffer=10485760 -XX:+ParallelRefProcEnabled -XX:+UnlockExperimentalVMOptions -XX:+DoEscapeAnalysis -XX:+DisableExplicitGC -XX:+PerfDisableSharedMem -Dzookeeper.forceSync=no pdb: usePolicy: false bookkeeper: replicaCount: 3 volumes: journal: name: journal size: 100Gi ledgers: name: ledgers size: 200Gi resources: requests: memory: 2048Mi cpu: 1 configData: PULSAR_MEM: > -Xms4096m -Xmx4096m -XX:MaxDirectMemorySize=8192m PULSAR_GC: > -Dio.netty.leakDetectionLevel=disabled -Dio.netty.recycler.linkCapacity=1024 -XX:+UseG1GC -XX:MaxGCPauseMillis=10 -XX:+ParallelRefProcEnabled -XX:+UnlockExperimentalVMOptions -XX:+DoEscapeAnalysis -XX:ParallelGCThreads=32 -XX:ConcGCThreads=32 -XX:G1NewSizePercent=50 -XX:+DisableExplicitGC -XX:-ResizePLAB -XX:+ExitOnOutOfMemoryError -XX:+PerfDisableSharedMem -XX:+PrintGCDetails nettyMaxFrameSizeBytes: "104867840" pdb: usePolicy: false broker: component: broker podMonitor: enabled: false replicaCount: 1 resources: requests: memory: 4096Mi cpu: 1.5 configData: PULSAR_MEM: > -Xms4096m -Xmx4096m -XX:MaxDirectMemorySize=8192m PULSAR_GC: > -Dio.netty.leakDetectionLevel=disabled -Dio.netty.recycler.linkCapacity=1024 -XX:+ParallelRefProcEnabled -XX:+UnlockExperimentalVMOptions -XX:+DoEscapeAnalysis -XX:ParallelGCThreads=32 -XX:ConcGCThreads=32 -XX:G1NewSizePercent=50 -XX:+DisableExplicitGC -XX:-ResizePLAB -XX:+ExitOnOutOfMemoryError maxMessageSize: "104857600" defaultRetentionTimeInMinutes: "10080" defaultRetentionSizeInMB: "-1" backlogQuotaDefaultLimitGB: "8" ttlDurationDefaultInSeconds: "259200" subscriptionExpirationTimeMinutes: "3" backlogQuotaDefaultRetentionPolicy: producer_exception pdb: usePolicy: false autorecovery: resources: requests: memory: 512Mi cpu: 1 proxy: replicaCount: 1 podMonitor: enabled: false resources: requests: memory: 2048Mi cpu: 1 service: type: ClusterIP ports: pulsar: 6650 configData: PULSAR_MEM: > -Xms2048m -Xmx2048m PULSAR_GC: > -XX:MaxDirectMemorySize=2048m httpNumThreads: "100" pdb: usePolicy: false pulsar_manager: service: type: ClusterIP pulsar_metadata: component: pulsar-init image: # the image used for running `pulsar-cluster-initialize` job repository: apachepulsar/pulsar tag: 2.8.2 ## Configuration values for the kafka dependency ## ref: https://artifacthub.io/packages/helm/bitnami/kafka ## kafka: enabled: false name: kafka replicaCount: 3 image: repository: bitnami/kafka tag: 3.1.0-debian-10-r52 ## Increase graceful termination for kafka graceful shutdown terminationGracePeriodSeconds: "90" pdb: create: false ## Enable startup probe to prevent pod restart during recovering startupProbe: enabled: true ## Kafka Java Heap size heapOpts: "-Xmx4096m -Xms4096m" maxMessageBytes: _10485760 defaultReplicationFactor: 3 offsetsTopicReplicationFactor: 3 ## Only enable time based log retention logRetentionHours: 168 logRetentionBytes: _-1 extraEnvVars: - name: KAFKA_CFG_MAX_PARTITION_FETCH_BYTES value: "5242880" - name: KAFKA_CFG_MAX_REQUEST_SIZE value: "5242880" - name: KAFKA_CFG_REPLICA_FETCH_MAX_BYTES value: "10485760" - name: KAFKA_CFG_FETCH_MESSAGE_MAX_BYTES value: "5242880" - name: KAFKA_CFG_LOG_ROLL_HOURS value: "24" persistence: enabled: true storageClass: accessMode: ReadWriteOnce size: 300Gi metrics: ## Prometheus Kafka exporter: exposes complimentary metrics to JMX exporter kafka: enabled: false image: repository: bitnami/kafka-exporter tag: 1.4.2-debian-10-r182 ## Prometheus JMX exporter: exposes the majority of Kafkas metrics jmx: enabled: false image: repository: bitnami/jmx-exporter tag: 0.16.1-debian-10-r245 ## To enable serviceMonitor, you must enable either kafka exporter or jmx exporter. ## And you can enable them both serviceMonitor: enabled: false service: type: ClusterIP ports: client: 9092 zookeeper: enabled: true replicaCount: 3 ## Configuration values for the mysql dependency ## ref: https://artifacthub.io/packages/helm/bitnami/mysql ## ## MySQL used for meta store is testing internally mysql: enabled: false name: mysql image: repository: bitnami/mysql tag: 8.0.23-debian-10-r84 architecture: replication auth: rootPassword: "ChangeMe" createDatabase: true database: "milvus_meta" maxOpenConns: 20 maxIdleConns: 5 primary: name: primary resources: limits: {} requests: {} persistence: enabled: true storageClass: "" accessModes: - ReadWriteOnce size: 100Gi secondary: name: secondary replicaCount: 1 resources: limits: {} requests: {} persistence: enabled: true storageClass: "" accessModes: - ReadWriteOnce size: 100Gi ################################### # External S3 # - these configs are only used when `externalS3.enabled` is true ################################### externalS3: enabled: false host: "" port: "" accessKey: "" secretKey: "" useSSL: false bucketName: "" rootPath: "" useIAM: false cloudProvider: "aws" iamEndpoint: "" ################################### # GCS Gateway # - these configs are only used when `minio.gcsgateway.enabled` is true ################################### externalGcs: bucketName: "" ################################### # External etcd # - these configs are only used when `externalEtcd.enabled` is true ################################### externalEtcd: enabled: false ## the endpoints of the external etcd ## endpoints: - localhost:2379 ################################### # External pulsar # - these configs are only used when `externalPulsar.enabled` is true ################################### externalPulsar: enabled: false host: localhost port: 6650 maxMessageSize: 5242880 # 5 * 1024 * 1024 Bytes, Maximum size of each message in pulsar. tenant: public namespace: default authPlugin: "" authParams: "" ################################### # External kafka # - these configs are only used when `externalKafka.enabled` is true ################################### externalKafka: enabled: false brokerList: localhost:9092 securityProtocol: SASL_SSL sasl: mechanisms: PLAIN username: "" password: "" ################################### # External mysql # - these configs are only used when `externalMysql.enabled` is true ################################### externalMysql: enabled: false username: "" password: "" address: localhost port: 3306 dbName: milvus_meta maxOpenConns: 20 maxIdleConns: 5