apiVersion: v1
kind: ConfigMap
metadata:
  name: milvus-ro-configmap
  namespace: milvus-demo
data:
  config.yml: |
    # Copyright (C) 2019-2020 Zilliz. All rights reserved.
    #
    # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
    # with the License. You may obtain a copy of the License at
    #
    # http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software distributed under the License
    # is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
    # or implied. See the License for the specific language governing permissions and limitations under the License.

    version: 0.6

    #----------------------+------------------------------------------------------------+------------+-----------------+
    # Cluster Config       | Description                                                | Type       | Default         |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # enable               | If running with Mishards, set true, otherwise false.       | Boolean    | false           |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # role                 | Milvus deployment role: rw / ro                            | Role       | rw              |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    cluster:
      enable: true
      role: ro

    #----------------------+------------------------------------------------------------+------------+-----------------+
    # General Config       | Description                                                | Type       | Default         |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # timezone             | Use UTC-x or UTC+x to specify a time zone.                 | Timezone   | UTC+8           |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # meta_uri             | URI for metadata storage, using SQLite (for single server  | URI        | sqlite://:@:/   |
    #                      | Milvus) or MySQL (for distributed cluster Milvus).         |            |                 |
    #                      | Format: dialect://username:password@host:port/database     |            |                 |
    #                      | Keep 'dialect://:@:/', 'dialect' can be either 'sqlite' or |            |                 |
    #                      | 'mysql', replace other texts with real values.             |            |                 |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    general:
      timezone: UTC+8
      meta_uri: mysql://root:milvusroot@milvus-mysql:3306/{{ template "mysql.database.name" . }}

    #----------------------+------------------------------------------------------------+------------+-----------------+
    # Network Config       | Description                                                | Type       | Default         |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # bind.address         | IP address that Milvus server monitors.                    | IP         | 0.0.0.0         |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # bind.port            | Port that Milvus server monitors. Port range (1024, 65535) | Integer    | 19530           |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # http.enable          | Enable HTTP server or not.                                 | Boolean    | true            |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # http.port            | Port that Milvus HTTP server monitors.                     | Integer    | 19121           |
    #                      | Port range (1024, 65535)                                   |            |                 |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    network:
      bind.address: 0.0.0.0
      bind.port: 19530
      http.enable: true
      http.port: 19121

    #----------------------+------------------------------------------------------------+------------+-----------------+
    # Storage Config       | Description                                                | Type       | Default         |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # path                 | Path used to save meta data, vector data and index data.   | Path       | /var/lib/milvus |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # auto_flush_interval  | The interval, in seconds, at which Milvus automatically    | Integer    | 1 (s)           |
    #                      | flushes data to disk.                                      |            |                 |
    #                      | 0 means disable the regular flush.                         |            |                 |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    storage:
      path: /var/milvus/data
      auto_flush_interval: 1

    #----------------------+------------------------------------------------------------+------------+-----------------+
    # WAL Config           | Description                                                | Type       | Default         |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # enable               | Whether to enable write-ahead logging (WAL) in Milvus.     | Boolean    | true            |
    #                      | If WAL is enabled, Milvus writes all data changes to log   |            |                 |
    #                      | files in advance before implementing data changes. WAL     |            |                 |
    #                      | ensures the atomicity and durability for Milvus operations.|            |                 |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # path                 | Location of WAL log files.                                 | String     |                 |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    wal:
      enable: true
      path: /var/milvus/data/wal

    #----------------------+------------------------------------------------------------+------------+-----------------+
    # Cache Config         | Description                                                | Type       | Default         |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # cache_size           | The size of CPU memory used for caching data for faster    | String     | 4GB             |
    #                      | query. The sum of 'cache_size' and 'insert_buffer_size'    |            |                 |
    #                      | must be less than system memory size.                      |            |                 |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # insert_buffer_size   | Buffer size used for data insertion.                       | String     | 1GB             |
    #                      | The sum of 'insert_buffer_size' and 'cache_size'           |            |                 |
    #                      | must be less than system memory size.                      |            |                 |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # preload_collection   | A comma-separated list of collection names that need to    | StringList |                 |
    #                      | be pre-loaded when Milvus server starts up.                |            |                 |
    #                      | '*' means preload all existing tables (single-quote or     |            |                 |
    #                      | double-quote required).                                    |            |                 |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # max_concurrent_insert_request_size |                                              |            |                 |
    #                      | A size limit on the concurrent insert requests to process. | String     | 2GB             |
    #                      | Milvus can process insert requests from multiple clients   |            |                 |
    #                      | concurrently. This setting puts a cap on the memory        |            |                 |
    #                      | consumption during this process.                           |            |                 |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    cache:
      cache_size: 512MB
      insert_buffer_size: 512MB
      preload_collection: "*"
      max_concurrent_insert_request_size: 2GB

    #----------------------+------------------------------------------------------------+------------+-----------------+
    # GPU Config           | Description                                                | Type       | Default         |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # enable               | Use GPU devices or not.                                    | Boolean    | false           |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # cache_size           | The size of GPU memory per card used for cache.            | String     | 1GB             |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # gpu_search_threshold | A Milvus performance tuning parameter. This value will be  | Integer    | 1000            |
    #                      | compared with 'nq' to decide if the search computation will|            |                 |
    #                      | be executed on GPUs only.                                  |            |                 |
    #                      | If nq >= gpu_search_threshold, the search computation will |            |                 |
    #                      | be executed on GPUs only;                                  |            |                 |
    #                      | if nq < gpu_search_threshold, the search computation will  |            |                 |
    #                      | be executed on both CPUs and GPUs.                         |            |                 |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # search_devices       | The list of GPU devices used for search computation.       | DeviceList | gpu0            |
    #                      | Must be in format gpux.                                    |            |                 |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # build_index_devices  | The list of GPU devices used for index building.           | DeviceList | gpu0            |
    #                      | Must be in format gpux.                                    |            |                 |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    gpu:
      enable: false
      cache_size: 1GB
      gpu_search_threshold: 1000
      search_devices:
        - gpu0
      build_index_devices:
        - gpu0

    #----------------------+------------------------------------------------------------+------------+-----------------+
    # Logs Config          | Description                                                | Type       | Default         |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # level                | Log level in Milvus. Must be one of debug, info, warning,  | String     | debug           |
    #                      | error, fatal                                               |            |                 |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # trace.enable         | Whether to enable trace level logging in Milvus.           | Boolean    | true            |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # path                 | Absolute path to the folder holding the log files.         | String     |                 |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # max_log_file_size    | The maximum size of each log file, size range              | String     | 1024MB          |
    #                      | [512MB, 4096MB].                                           |            |                 |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # log_rotate_num       | The maximum number of log files that Milvus keeps for each | Integer    | 0               |
    #                      | logging level, num range [0, 1024], 0 means unlimited.     |            |                 |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # log_to_stdout        | Whether logging to standard output.                        | Boolean    | false           |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # log_to_file          | Whether logging to log files.                              | Boolean    | true            |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    logs:
      level: info
      trace.enable: true
      path: /var/milvus/logs
      max_log_file_size: 1024MB
      log_rotate_num: 3
      log_to_stdout: false
      log_to_file: true

    #----------------------+------------------------------------------------------------+------------+-----------------+
    # Metric Config        | Description                                                | Type       | Default         |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # enable               | Enable monitoring function or not.                         | Boolean    | false           |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # address              | Pushgateway address                                        | IP         | 127.0.0.1       +
    #----------------------+------------------------------------------------------------+------------+-----------------+
    # port                 | Pushgateway port, port range (1024, 65535)                 | Integer    | 9091            |
    #----------------------+------------------------------------------------------------+------------+-----------------+
    metric:
      enable: false
      address: 127.0.0.1
      port: 9091
