Module cartridge.argparse
Gather configuration options.
The module tries to read configuration options from multiple sources and then merge them together according to the priority of the source:
--<VARNAME>
command line argumentsTARANTOOL_<VARNAME>
environment variables- configuration files
One can specify a configuration file using the --cfg <CONFIG_FILE>
option
or the TARANTOOL_CFG=<CONFIG_FILE>
environment variable.
Configuration files are yaml
files, divided into
sections like the following:
default: memtx_memory: 10000000 some_option: "default value" myapp.router: memtx_memory: 1024000000 some_option: "router specific value"
Within the configuration file argparse looks for multiple matching section:
- The section named
<APP_NAME>.<INSTANCE_NAME>
is parsed first. Application name is derived automatically from the rockspec filename in the project directory. Or it can be can be specified manually with--app-name
command line argument orTARANTOOL_APP_NAME
environment variable. Instance name can be specified the same way either as--instance-name
orTARANTOOL_INSTANCE_NAME
. - The common
<APP_NAME>
section is parsed next. - Finally, the section
[default]
with global configuration is parsed with the lowest priority.
Functions
parse () | Parse command line arguments, environment variables, and config files. |
get_opts (filter) | Filter results of parsing and cast variables to a given type. |
get_box_opts () | Shorthand for get_opts(box_opts) . |
get_cluster_opts () | Shorthand for get_opts(cluster_opts) . |
Tables
cluster_opts | Common cartridge.cfg options. |
box_opts | Common box.cfg tuning options. |
Functions
- parse ()
-
Parse command line arguments, environment variables, and config files.
Returns:
-
{argname=value,...}
- get_opts (filter)
-
Filter results of parsing and cast variables to a given type.
From all configuration options gathered by parse, select only ones specified in filter.
For example, running application as the following:
./init.lua --alias router --memtx-memory 100
results in:
parse() -> {memtx_memory = "100", alias = "router"} get_cluster_opts() -> {alias = "router"} -- a string get_box_opts() -> {memtx_memory = 100} -- a number
Parameters:
- filter {argname=type,...}
Returns:
-
{argname=value,...}
- get_box_opts ()
-
Shorthand for
get_opts(box_opts)
. - get_cluster_opts ()
-
Shorthand for
get_opts(cluster_opts)
.
Tables
- cluster_opts
-
Common cartridge.cfg options.
Options, which are not listed here (like roles) can't be modified with argparse and should be configured in code.
Fields:
- alias string
- workdir string
- http_port number
- http_enabled boolean
- advertise_uri string
- cluster_cookie string
- console_sock string
- auth_enabled boolean
- bucket_count number
- upgrade_schema boolean
- box_opts
-
Common box.cfg tuning options.
Fields:
- listen string
- memtx_memory number
- strip_core boolean
- memtx_min_tuple_size number
- memtx_max_tuple_size number
- slab_alloc_factor number
- work_dir string (deprecated)
- memtx_dir string
- wal_dir string
- vinyl_dir string
- vinyl_memory number
- vinyl_cache number
- vinyl_max_tuple_size number
- vinyl_read_threads number
- vinyl_write_threads number
- vinyl_timeout number
- vinyl_run_count_per_level number
- vinyl_run_size_ratio number
- vinyl_range_size number
- vinyl_page_size number
- vinyl_bloom_fpr number
- log string
- log_nonblock boolean
- log_level number
- log_format string
- io_collect_interval number
- readahead number
- snap_io_rate_limit number
- too_long_threshold number
- wal_mode string
- rows_per_wal number
- wal_max_size number
- wal_dir_rescan_delay number
- force_recovery boolean
- replication string
- instance_uuid string
- replicaset_uuid string
- custom_proc_title string
- pid_file string
- background boolean
- username string
- coredump boolean
- checkpoint_interval number
- checkpoint_wal_threshold number
- checkpoint_count number
- read_only boolean
- hot_standby boolean
- worker_pool_threads number
- replication_timeout number
- replication_sync_lag number
- replication_sync_timeout number
- replication_connect_timeout number
- replication_connect_quorum number
- replication_skip_conflict boolean
- feedback_enabled boolean
- feedback_host string
- feedback_interval number
- net_msg_max number