# Salt Cfg Checker
# Local Environment file

# Main log file of the tests
MCP_LOGFILE = '/var/log/salt-cfg-checker.log'

# Salt master host to connect to
MCP_ENV_HOST=127.0.0.1
# Salt master port.
# Note that you can safely execute second master (not on production)
# on the same cfg node with diferent port and set logging to ALL
MCP_SALT_PORT=6969


### Salt type section
# All vars should start with SALT

# User and password to auth on master. Can be found in /srv/salt/...
# No need for a password if environment is local
SALT_USER=salt

# default timeout for salt calls
SALT_TIMEOUT=30

# Folder where salt points its filesystem: salt://
SALT_FILE_ROOT=/usr/share/salt-formulas/env/

# Subfolder with scripts to be uploaded
SALT_SCRIPTS_FOLDER=salt-cfg-scripts

# All nodes list file overide
# Can be set to 'auto' for automatic collection
# or check the example in 'etc/example._list'
SALT_NODE_LIST_FILE=auto

### K8s section
# All vars start with KUBE
KUBE_CONFIG_ROOT=/root
KUBE_SCRIPTS_FOLDER=cfg-checker-scripts
KUBE_NODE_USER=ubuntu
KUBE_NODE_KEYPATH=/home/ubuntu/node_key.rsa