# Cfg Checker
# Environment file example

# Either open a tunnel from your hosts using 
# 'ssh -L 16969:<cfg-IP>:6969 <user>@<lab-IP>'
# Or run it from within a cloud

# Main log file of the tests
MCP_LOGFILE = 'cfg_checker.log'

# SSH is used when environment is not local to get salt password
# in order set options and user for the ssh, 
# please, use ~/.ssh/config
# SSH hostname of salt master node
MCP_SSH_KEY=<ssh_keyfile_path>
MCP_SSH_USER=<ssh_user>
MCP_SSH_HOST=<ssh_hostname>


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

# 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
SALT_PORT=6969

# User and password to auth on master. Can be found in /srv/salt/...
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=test_scripts

# All nodes list file overide when salt.keys request failed
SALT_NODE_LIST_FILE=etc/example._list

### K8s section
# Kube config root when it is being looked up on remote host
KUBE_CONFIG_ROOT=/root
# Script folder to store scripts in pod
KUBE_SCRIPTS_FOLDER=cfg-checker-scripts
# Kube host's username to use when accessing it via SSH
KUBE_NODE_USER=mcc-user
# Key to use when accessing kube hosts remotely
KUBE_NODE_KEYPATH=/.../<project_folder>/envs/node.key