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.

110 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. | download | Fetching container images
  54. | etcd | Configuring etcd cluster
  55. | etcd-pre-upgrade | Upgrading etcd cluster
  56. | etcd-secrets | Configuring etcd certs/keys
  57. | etchosts | Configuring /etc/hosts entries for hosts
  58. | facts | Gathering facts and misc check results
  59. | flannel | Network plugin flannel
  60. | gce | Cloud-provider GCP
  61. | hyperkube | Manipulations with K8s hyperkube image
  62. | k8s-pre-upgrade | Upgrading K8s cluster
  63. | k8s-secrets | Configuring K8s certs/keys
  64. | kpm | Installing K8s apps definitions with KPM
  65. | kube-apiserver | Configuring self-hosted kube-apiserver
  66. | kube-controller-manager | Configuring self-hosted kube-controller-manager
  67. | kubectl | Installing kubectl and bash completion
  68. | kubelet | Configuring kubelet service
  69. | kube-proxy | Configuring self-hosted kube-proxy
  70. | kube-scheduler | Configuring self-hosted kube-scheduler
  71. | master | Configuring K8s master node role
  72. | netchecker | Installing netchecker K8s app
  73. | network | Configuring networking plugins for K8s
  74. | nginx | Configuring LB for kube-apiserver instances
  75. | node | Configuring K8s minion (compute) node role
  76. | openstack | Cloud-provider OpenStack
  77. | preinstall | Preliminary configuration steps
  78. | resolvconf | Configuring /etc/resolv.conf for hosts/apps
  79. | upgrade | Upgrading, f.e. container images/binaries
  80. | weave | Network plugin Weave
  81. Note: Use the ``bash scripts/gen_tags.sh`` command to generate a list of all
  82. tags found in the codebase. New tags will be listed with the empty "Used for"
  83. field.
  84. Example command to filter and apply only DNS configuration tasks and skip
  85. everything else related to host OS configuration and downloading images of containers:
  86. ```
  87. ansible-playbook -i inventory/inventory.ini cluster.yml --tags preinstall,dnsmasq,facts --skip-tags=download,bootstrap-os
  88. ```
  89. And this play only removes the K8s cluster DNS resolver IP from hosts' /etc/resolv.conf files:
  90. ```
  91. ansible-playbook -i inventory/inventory.ini -e dns_server='' cluster.yml --tags resolvconf
  92. ```
  93. Note: use `--tags` and `--skip-tags` wise and only if you're 100% sure what you're doing.