parameters:
  _param:
    salt_minion_ca_host: ${_param:infra_config_hostname}.${_param:cluster_domain}
    salt_minion_ca_authority: salt_master_ca

    # kubelet
    kubelet_fail_on_swap: True

    # kubernetes settings
    kubernetes_admin_user: admin
    kubernetes_admin_password: sbPfel23ZigJF3Bm
    kubernetes_admin_token: PpP6Mm3pAoPVqcKOKUu0x1dh7b1959Fi
    kubernetes_kubelet_token: JJ2PKHxjiU6EYvIt18BqwdSK1HvWh8pt
    kubernetes_kube-proxy_token: jT0hJk9L6cIw5UpYDNhsRwcj3Z2n62B6
    kubernetes_scheduler_token: VgkUHfrW07zNxrb0ucFyX7NBnSJN9Xp6
    kubernetes_controller-manager_token: uXrdZ1YKF6qlYm3sHje2iEXMGAGDWOIU
    kubernetes_dns_token: 0S1I4iJeFjq5fopPwwCwTp3xFpEZfeUl
    etcd_initial_token: IN7KaRMSo3xkGxkjAAPtkRkAgqN4ZNRq

    # docker package version
    kubernetes_docker_package: docker-engine=1.13.1-0~ubuntu-xenial

    # component docker images
    kubernetes_calico_calicoctl_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/ctl:latest
    kubernetes_calico_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/node:latest
    kubernetes_calico_cni_image: docker-prod-virtual.docker.mirantis.net/mirantis/projectcalico/calico/cni:latest
    kubernetes_calico_policy_image: calico/kube-policy-controller:v0.5.4
    kubernetes_hyperkube_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/hyperkube-amd64:v1.10.4-4
    kubernetes_pause_image: docker-prod-virtual.docker.mirantis.net/mirantis/kubernetes/pause-amd64:v1.10.4-4
    kubernetes_netchecker_agent_image: mirantis/k8s-netchecker-agent:v1.1.2
    kubernetes_netchecker_server_image: mirantis/k8s-netchecker-server:v1.1.2
    kubernetes_netchecker_agent_probeurls: "http://ipinfo.io"
    kubernetes_virtlet_image: mirantis/virtlet:v1.1.2
    kubernetes_criproxy_version: v0.11.0
    kubernetes_criproxy_checksum: md5=115bbb0c27518db6b0b3bc8cdc5fc897
    kubernetes_dashboard_image: gcr.io/google_containers/kubernetes-dashboard-amd64:v1.5.1
    kubernetes_kubedns_image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.5
    kubernetes_dnsmasq_image: gcr.io/google_containers/k8s-dns-dnsmasq-amd64:1.14.5
    kubernetes_sidecar_image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.5
    kubernetes_dns_autoscaler_image: gcr.io/google_containers/cluster-proportional-autoscaler-amd64:1.0.0

    # switches of addons
    kubernetes_addon_namespace: kube-system
    kubernetes_dns: true
    kubernetes_dashboard: true
    kubernetes_helm_enabled: false
    kubernetes_netchecker_enabled: true
    kubernetes_calico_policy_enabled: false
    kubernetes_virtlet_enabled: false

    # addresses and hostnames
    kubernetes_internal_api_address: 10.254.0.1
    kubernetes_control_hostname: ctl
    kubernetes_control_address: 192.168.10.253
    kubernetes_control_node01_hostname: ctl01
    kubernetes_control_node02_hostname: ctl02
    kubernetes_control_node03_hostname: ctl03
    kubernetes_compute_node01_hostname: cmp01
    kubernetes_compute_node02_hostname: cmp02
    kubernetes_control_node01_address: 172.16.10.101
    kubernetes_control_node02_address: 172.16.10.102
    kubernetes_control_node03_address: 172.16.10.103
    kubernetes_compute_node01_address: 172.16.10.105
    kubernetes_compute_node02_address: 172.16.10.106
    kubernetes_control_node01_deploy_address: 192.168.10.101
    kubernetes_control_node02_deploy_address: 192.168.10.102
    kubernetes_control_node03_deploy_address: 192.168.10.103
    kubernetes_compute_node01_deploy_address: 192.168.10.105
    kubernetes_compute_node02_deploy_address: 192.168.10.106
    kubernetes_proxy_node01_hostname: prx01
    kubernetes_proxy_node01_address: 172.16.10.121

    cluster_vip_address: ${_param:kubernetes_control_address}
    cluster_local_address: ${_param:deploy_address}

    # etcd stuff
    cluster_node01_hostname: ${_param:kubernetes_control_node01_hostname}
    cluster_node01_address: ${_param:kubernetes_control_node01_deploy_address}
    cluster_node01_port: 4001
    cluster_node02_hostname: ${_param:kubernetes_control_node02_hostname}
    cluster_node02_address: ${_param:kubernetes_control_node02_deploy_address}
    cluster_node02_port: 4001
    cluster_node03_hostname: ${_param:kubernetes_control_node03_hostname}
    cluster_node03_address: ${_param:kubernetes_control_node03_deploy_address}
    cluster_node03_port: 4001

    # calico
    calico_private_network: 192.168.0.0
    calico_private_netmask: 16

    # component docker images
    kubernetes_externaldns_image: mirantis/external-dns:latest
    kubernetes_externaldns_provider: coredns

    # switches of addons
    kubernetes_coredns_enabled: false
    kubernetes_externaldns_enabled: false

  linux:
    network:
      resolv:
        domain: virtual-mcp11-k8s-calico.local
        options:
          - ndots:5
          - timeout:2
          - attempts:2
      purge_hosts: true
      host:
        ctl:
          address: ${_param:kubernetes_control_address}
          names:
          - ${_param:kubernetes_control_hostname}
          - ${_param:kubernetes_control_hostname}.${_param:cluster_domain}
        ctl01:
          address: ${_param:kubernetes_control_node01_address}
          names:
          - ${_param:kubernetes_control_node01_hostname}
          - ${_param:kubernetes_control_node01_hostname}.${_param:cluster_domain}
        ctl02:
          address: ${_param:kubernetes_control_node02_address}
          names:
          - ${_param:kubernetes_control_node02_hostname}
          - ${_param:kubernetes_control_node02_hostname}.${_param:cluster_domain}
        ctl03:
          address: ${_param:kubernetes_control_node03_address}
          names:
          - ${_param:kubernetes_control_node03_hostname}
          - ${_param:kubernetes_control_node03_hostname}.${_param:cluster_domain}
        cmp01:
          address: ${_param:kubernetes_compute_node01_address}
          names:
          - ${_param:kubernetes_compute_node01_hostname}
          - ${_param:kubernetes_compute_node01_hostname}.${_param:cluster_domain}
        cmp02:
          address: ${_param:kubernetes_compute_node02_address}
          names:
          - ${_param:kubernetes_compute_node02_hostname}
          - ${_param:kubernetes_compute_node02_hostname}.${_param:cluster_domain}
        prx01:
          address: ${_param:kubernetes_proxy_node01_address}
          names:
          - ${_param:kubernetes_proxy_node01_hostname}
          - ${_param:kubernetes_proxy_node01_hostname}.${_param:cluster_domain}
    system:
      user:
        root:
          name: root
          password: false
      rc:
        local: |
          #!/bin/sh -e
          #
          # rc.local
          #
          ######### This file is managed by Salt! ##########
          # This script is executed at the end of each multiuser runlevel.
          # Make sure that the script will "exit 0" on success or any other
          # value on error.
          #
          ip r a 10.254.0.0/16 dev ens4
          exit 0
