# This is list of all default soft params, across reclass-system lvl.
# Please always include those 'init.yml', and don't use direct sub-lvls.
# Some rules approach:
# - Always use uniq names, which exactly identify key
# - Avoid any component intersection's
# - No if\else\whatever logic allowed.

classes:
- system.defaults.linux_system_repo
- system.defaults.linux_system_file
- system.defaults.backupninja
- system.defaults.git
- system.defaults.glusterfs
- system.defaults.nginx
- system.defaults.jenkins
- system.defaults.maas
- system.defaults.opencontrail
- system.defaults.openstack
- system.defaults.galera
- system.defaults.rabbitmq
- system.defaults.debmirror
- system.defaults.docker_images
- system.defaults.gerrit
- system.defaults.keepalived
- system.defaults.salt
- system.defaults.secrets
- system.defaults.stacklight
- system.defaults.xtrabackup
- system.defaults.haproxy
parameters:
  _param:
    mcp_version: stable
    # Temporary link to mcp_version.
    # 'apt_mk_version' will be removed in q4
    apt_mk_version: ${_param:mcp_version}
    linux_system_architecture: amd64
    # linux globals
    banner_company_name: COMPANY_NAME
    motd_company_name: "${_param:banner_company_name}"
    ssh_banner_company_name: "${_param:banner_company_name}"
    # Docker artifact globals
    mcp_docker_registry: 'docker-prod-local.artifactory.mirantis.com'
    mcp_binary_registry: "https://${_param:mcp_docker_registry}/artifactory/binary-prod-local"
    mcp_static_images_url: "http://images.mirantis.com"
    # Opencontrail globals
    opencontrail_version: 4.0
    # Other
    salt_control_xenial_image_backend: /var/lib/libvirt/images/backends/xenial.qcow2
    salt_control_trusty_image_backend: /var/lib/libvirt/images/backends/trusty.qcow2
    salt_minion_ca_host: cfg01.${_param:cluster_domain}
    # Make sure this global variable is defined everywhere, where used it is already set on cluster level
    cluster_public_host: '127.0.0.1'
    single_address: '127.0.0.1'
    # Stub parameter, to render target local_registry_mirror_image_list
    local_docker_client_registry_target_registry: "apt:5000"
    # Cloudwatch api removed from Queens
    openstack_heat_cloudwatch_api_enabled: True

    salt_master_host: '127.0.0.1'
    infra_config_address: '127.0.0.1'
    reclass_config_master: '127.0.0.1'
