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.

90 lines
2.5 KiB

9 years ago
9 years ago
9 years ago
9 years ago
  1. ---
  2. - name: Copy kubectl bash completion
  3. copy:
  4. src: kubectl_bash_completion.sh
  5. dest: /etc/bash_completion.d/kubectl.sh
  6. - name: Install kubectl binary
  7. synchronize:
  8. src: "{{ local_release_dir }}/kubernetes/bin/kubectl"
  9. dest: "{{ bin_dir }}/kubectl"
  10. archive: no
  11. checksum: yes
  12. times: yes
  13. delegate_to: "{{ groups['downloader'][0] }}"
  14. - name: Perms kubectl binary
  15. file: path={{ bin_dir }}/kubectl owner=kube mode=0755 state=file
  16. - name: populate users for basic auth in API
  17. lineinfile:
  18. dest: "{{ kube_users_dir }}/known_users.csv"
  19. create: yes
  20. line: '{{ item.value.pass }},{{ item.key }},{{ item.value.role }}'
  21. backup: yes
  22. with_dict: "{{ kube_users }}"
  23. # Sync masters
  24. - name: synchronize auth directories for masters
  25. synchronize:
  26. src: "{{ item }}"
  27. dest: "{{ kube_config_dir }}"
  28. recursive: yes
  29. delete: yes
  30. rsync_opts: [ '--one-file-system']
  31. set_remote_user: false
  32. with_items:
  33. - "{{ kube_token_dir }}"
  34. - "{{ kube_cert_dir }}"
  35. - "{{ kube_users_dir }}"
  36. delegate_to: "{{ groups['kube-master'][0] }}"
  37. when: inventory_hostname != "{{ groups['kube-master'][0] }}"
  38. # Write manifests
  39. - name: Write kube-apiserver manifest
  40. template:
  41. src: manifests/kube-apiserver.manifest.j2
  42. dest: "{{ kube_manifest_dir }}/kube-apisever.manifest"
  43. notify:
  44. - restart kubelet
  45. - meta: flush_handlers
  46. - name: wait for the apiserver to be running (pulling image and running container)
  47. wait_for:
  48. port: "{{kube_apiserver_insecure_port}}"
  49. delay: 10
  50. timeout: 60
  51. - name: copy 'kube-system' namespace manifest
  52. copy: src=namespace.yml dest=/etc/kubernetes/kube-system-ns.yml
  53. run_once: yes
  54. when: inventory_hostname == groups['kube-master'][0]
  55. - name: Check if kube-system exists
  56. command: kubectl get ns kube-system
  57. register: 'kubesystem'
  58. changed_when: False
  59. ignore_errors: yes
  60. run_once: yes
  61. - name: Create 'kube-system' namespace
  62. command: kubectl create -f /etc/kubernetes/kube-system-ns.yml
  63. when: kubesystem|failed
  64. changed_when: False
  65. run_once: yes
  66. - name: Write kube-controller-manager manifest
  67. template:
  68. src: manifests/kube-controller-manager.manifest.j2
  69. dest: "{{ kube_config_dir }}/kube-controller-manager.manifest"
  70. - name: Write kube-scheduler manifest
  71. template:
  72. src: manifests/kube-scheduler.manifest.j2
  73. dest: "{{ kube_config_dir }}/kube-scheduler.manifest"
  74. - name: Write podmaster manifest
  75. template:
  76. src: manifests/kube-podmaster.manifest.j2
  77. dest: "{{ kube_manifest_dir }}/kube-podmaster.manifest"