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.

111 lines
4.2 KiB

  1. Ansible variables
  2. ===============
  3. Inventory
  4. -------------
  5. The inventory is composed of 3 groups:
  6. * **kube-node** : list of kubernetes nodes where the pods will run.
  7. * **kube-master** : list of servers where kubernetes master components (apiserver, scheduler, controller) will run.
  8. Note: if you want the server to act both as master and node the server must be defined on both groups _kube-master_ and _kube-node_
  9. * **etcd**: list of server to compose the etcd server. you should have at least 3 servers for failover purposes.
  10. Below is a complete inventory example:
  11. ```
  12. ## Configure 'ip' variable to bind kubernetes services on a
  13. ## different ip than the default iface
  14. node1 ansible_ssh_host=95.54.0.12 # ip=10.3.0.1
  15. node2 ansible_ssh_host=95.54.0.13 # ip=10.3.0.2
  16. node3 ansible_ssh_host=95.54.0.14 # ip=10.3.0.3
  17. node4 ansible_ssh_host=95.54.0.15 # ip=10.3.0.4
  18. node5 ansible_ssh_host=95.54.0.16 # ip=10.3.0.5
  19. node6 ansible_ssh_host=95.54.0.17 # ip=10.3.0.6
  20. [kube-master]
  21. node1
  22. node2
  23. [etcd]
  24. node1
  25. node2
  26. node3
  27. [kube-node]
  28. node2
  29. node3
  30. node4
  31. node5
  32. node6
  33. [k8s-cluster:children]
  34. kube-node
  35. kube-master
  36. etcd
  37. ```
  38. Group vars
  39. --------------
  40. The main variables to change are located in the directory ```inventory/group_vars/all.yml```.
  41. Ansible tags
  42. ------------
  43. The following tags are defined in playbooks:
  44. | Tag name | Used for
  45. |--------------------------|---------
  46. | apps | K8s apps definitions
  47. | azure | Cloud-provider Azure
  48. | bootstrap-os | Anything related to host OS configuration
  49. | calico | Network plugin Calico
  50. | canal | Network plugin Canal
  51. | cloud-provider | Cloud-provider related tasks
  52. | dnsmasq | Configuring DNS stack for hosts and K8s apps
  53. | docker | Configuring docker for hosts
  54. | download | Fetching container images
  55. | etcd | Configuring etcd cluster
  56. | etcd-pre-upgrade | Upgrading etcd cluster
  57. | etcd-secrets | Configuring etcd certs/keys
  58. | etchosts | Configuring /etc/hosts entries for hosts
  59. | facts | Gathering facts and misc check results
  60. | flannel | Network plugin flannel
  61. | gce | Cloud-provider GCP
  62. | hyperkube | Manipulations with K8s hyperkube image
  63. | k8s-pre-upgrade | Upgrading K8s cluster
  64. | k8s-secrets | Configuring K8s certs/keys
  65. | kpm | Installing K8s apps definitions with KPM
  66. | kube-apiserver | Configuring self-hosted kube-apiserver
  67. | kube-controller-manager | Configuring self-hosted kube-controller-manager
  68. | kubectl | Installing kubectl and bash completion
  69. | kubelet | Configuring kubelet service
  70. | kube-proxy | Configuring self-hosted kube-proxy
  71. | kube-scheduler | Configuring self-hosted kube-scheduler
  72. | master | Configuring K8s master node role
  73. | netchecker | Installing netchecker K8s app
  74. | network | Configuring networking plugins for K8s
  75. | nginx | Configuring LB for kube-apiserver instances
  76. | node | Configuring K8s minion (compute) node role
  77. | openstack | Cloud-provider OpenStack
  78. | preinstall | Preliminary configuration steps
  79. | resolvconf | Configuring /etc/resolv.conf for hosts/apps
  80. | upgrade | Upgrading, f.e. container images/binaries
  81. | weave | Network plugin Weave
  82. Note: Use the ``bash scripts/gen_tags.sh`` command to generate a list of all
  83. tags found in the codebase. New tags will be listed with the empty "Used for"
  84. field.
  85. Example command to filter and apply only DNS configuration tasks and skip
  86. everything else related to host OS configuration and downloading images of containers:
  87. ```
  88. ansible-playbook -i inventory/inventory.ini cluster.yml --tags preinstall,dnsmasq,facts --skip-tags=download,bootstrap-os
  89. ```
  90. And this play only removes the K8s cluster DNS resolver IP from hosts' /etc/resolv.conf files:
  91. ```
  92. ansible-playbook -i inventory/inventory.ini -e dns_server='' cluster.yml --tags resolvconf
  93. ```
  94. Note: use `--tags` and `--skip-tags` wise and only if you're 100% sure what you're doing.