You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

100 lines
4.4 KiB

  1. Configurable Parameters in Kargo
  2. ================================
  3. #### Generic Ansible variables
  4. You can view facts gathered by Ansible automatically
  5. [here](http://docs.ansible.com/ansible/playbooks_variables.html#information-discovered-from-systems-facts).
  6. Some variables of note include:
  7. * *ansible_user*: user to connect to via SSH
  8. * *ansible_default_ipv4.address*: IP address Ansible automatically chooses.
  9. Generated based on the output from the command ``ip -4 route get 8.8.8.8``
  10. #### Common vars that are used in Kargo
  11. * *calico_version* - Specify version of Calico to use
  12. * *calico_cni_version* - Specify version of Calico CNI plugin to use
  13. * *docker_version* - Specify version of Docker to used (should be quoted
  14. string)
  15. * *etcd_version* - Specify version of ETCD to use
  16. * *ipip* - Enables Calico ipip encapsulation by default
  17. * *hyperkube_image_repo* - Specify the Docker repository where Hyperkube
  18. resides
  19. * *hyperkube_image_tag* - Specify the Docker tag where Hyperkube resides
  20. * *kube_network_plugin* - Changes k8s plugin to Calico
  21. * *kube_proxy_mode* - Changes k8s proxy mode to iptables mode
  22. * *kube_version* - Specify a given Kubernetes hyperkube version
  23. * *searchdomains* - Array of DNS domains to search when looking up hostnames
  24. * *nameservers* - Array of nameservers to use for DNS lookup
  25. #### Addressing variables
  26. * *ip* - IP to use for binding services (host var)
  27. * *access_ip* - IP for other hosts to use to connect to. Often required when
  28. deploying from a cloud, such as OpenStack or GCE and you have separate
  29. public/floating and private IPs.
  30. * *ansible_default_ipv4.address* - Not Kargo-specific, but it is used if ip
  31. and access_ip are undefined
  32. * *loadbalancer_apiserver* - If defined, all hosts will connect to this
  33. address instead of localhost for kube-masters and kube-master[0] for
  34. kube-nodes. See more details in the
  35. [HA guide](https://github.com/kubernetes-incubator/kargo/blob/master/docs/ha-mode.md).
  36. * *loadbalancer_apiserver_localhost* - If enabled, all hosts will connect to
  37. the apiserver internally load balanced endpoint. See more details in the
  38. [HA guide](https://github.com/kubernetes-incubator/kargo/blob/master/docs/ha-mode.md).
  39. #### Cluster variables
  40. Kubernetes needs some parameters in order to get deployed. These are the
  41. following default cluster paramters:
  42. * *cluster_name* - Name of cluster (default is cluster.local)
  43. * *domain_name* - Name of cluster DNS domain (default is cluster.local)
  44. * *kube_network_plugin* - Plugin to use for container networking
  45. * *kube_service_addresses* - Subnet for cluster IPs (default is
  46. 10.233.0.0/18). Must not overlap with kube_pods_subnet
  47. * *kube_pods_subnet* - Subnet for Pod IPs (default is 10.233.64.0/18). Must not
  48. overlap with kube_service_addresses.
  49. * *kube_network_node_prefix* - Subnet allocated per-node for pod IPs. Remainin
  50. bits in kube_pods_subnet dictates how many kube-nodes can be in cluster.
  51. * *dns_setup* - Enables dnsmasq
  52. * *dns_server* - Cluster IP for dnsmasq (default is 10.233.0.2)
  53. * *skydns_server* - Cluster IP for KubeDNS (default is 10.233.0.3)
  54. * *cloud_provider* - Enable extra Kubelet option if operating inside GCE or
  55. OpenStack (default is unset)
  56. * *kube_hostpath_dynamic_provisioner* - Required for use of PetSets type in
  57. Kubernetes
  58. Note, if cloud providers have any use of the ``10.233.0.0/16``, like instances'
  59. private addresses, make sure to pick another values for ``kube_service_addresses``
  60. and ``kube_pods_subnet``, for example from the ``172.18.0.0/16``.
  61. #### DNS variables
  62. By default, dnsmasq gets set up with 8.8.8.8 as an upstream DNS server and all
  63. other settings from your existing /etc/resolv.conf are lost. Set the following
  64. variables to match your requirements.
  65. * *upstream_dns_servers* - Array of upstream DNS servers configured on host in
  66. addition to Kargo deployed DNS
  67. * *nameservers* - Array of DNS servers configured for use in dnsmasq
  68. * *searchdomains* - Array of up to 4 search domains
  69. * *skip_dnsmasq* - Don't set up dnsmasq (use only KubeDNS)
  70. For more information, see [DNS
  71. Stack](https://github.com/kubernetes-incubator/kargo/blob/master/docs/dns-stack.md).
  72. #### Other service variables
  73. * *docker_options* - Commonly used to set
  74. ``--insecure-registry=myregistry.mydomain:5000``
  75. * *http_proxy/https_proxy/no_proxy* - Proxy variables for deploying behind a
  76. proxy
  77. #### User accounts
  78. Kargo sets up two Kubernetes accounts by default: ``root`` and ``kube``. Their
  79. passwords default to changeme. You can set this by changing ``kube_api_pwd``.