# Do not delete! This file is for global parameters overrides over all the nodes in the environment.
classes:
# Enable root and *ALL* users access
- system.openssh.server.team.all
- system.linux.network.dynamic_hosts
- system.openssh.client.lab

# Example: salt-call reclass.cluster_meta_set foo bar /path/to/overrides.yml
#parameters:
#  _param:
#    foo: bar
parameters:
  _param:
    salt_api_password_hash: $6$V7O4vDAF$1FYwutKk53WFY314nq5IshabL5YXMuYklGglD7/Toj9bzCcgHTgudxhdeexmE3jf21lZPLmXy9K5mwzGyFbQt1
    salt_api_password: hovno12345!
    # Use galera options suitable for virtualized control plane
    galera_innodb_read_io_threads: 2
    galera_innodb_write_io_threads: 2
    galera_wsrep_slave_threads: 2
    galera_xtrabackup_parallel: 1
    galera_error_log_enabled: true
    # from system.openssh.client.lab
  openssh:
    server:
      password_auth: true
      permit_root_login: true
      alive:
        interval: 18000
        count: 0
    client:
      enabled: true
      user:
        root:
          enabled: true
          user: ${linux:system:user:root}
          private_key:
            key: ${_param:root_private_key}
            type: rsa
          config:
            '*':
              alive:
                interval: 60
                count: 5
              stricthostkeychecking: no
              userknownhostsfile: '/dev/null'
  linux:
    system:
      user:
        root:
          password: $6$oV7iKxfx$7DOZUfLw30d/W.pzUf97F0z1JhxgNmFAiKT1HhIodjkWb0M/.dTYAc3uxDCScR3lvCALjRe4/xWtiDyywf8wi1
      purge_repos: true
  salt:
    minion:
      log:
        level: debug
