-
Notifications
You must be signed in to change notification settings - Fork 2
/
k8s-02-install.yaml
102 lines (101 loc) · 3.06 KB
/
k8s-02-install.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
---
- hosts: master
remote_user: ubuntu
become: yes
become_user: root
become_method: sudo
tasks:
- name: Include all .yaml and .json files
include_vars:
dir: vars
extensions:
- yaml
- json
- name: create kubeadm config file
template:
src: k8s/_base/files/kubeadm.conf.j2
dest: /tmp/kubeadm.yaml
owner: root
group: root
mode: 0644
- name: run Kubeadm init
command: kubeadm init --config /tmp/kubeadm.yaml
args:
creates: /etc/kubernetes/admin.conf
- name: create .kube directory for ubuntu
file:
state: directory
path: "{{ item }}"
with_items:
- /home/ubuntu/.kube
- name: copy kubeconfig into ubuntu user-specific location
command: cp /etc/kubernetes/admin.conf /home/ubuntu/.kube/config
args:
creates: /home/ubuntu/.kube/config
- name: set mode on kube config locally
file:
mode: 0644
path: "{{ item }}"
owner: ubuntu
with_items:
- /home/ubuntu/.kube/config
- hosts: master
remote_user: ubuntu
tasks:
- name: save master api endpoint to vars directory
local_action:
module: lineinfile
line: "k8s_master_ip: {{ ansible_all_ipv4_addresses[0] }}"
path: vars/k8s_master.yaml
create: yes
regexp: "k8s_master_ip.*$"
- hosts: other
remote_user: ubuntu
become: yes
become_user: root
become_method: sudo
tasks:
- name: Include all .yaml and .json files
include_vars:
dir: vars
extensions:
- yaml
- json
- name: run Kubeadm join
command: kubeadm join --discovery-token-unsafe-skip-ca-verification --token {{ k8s_config.initial_token }} {{ k8s_master_ip }}:{{ k8s_config.api_port }}
args:
creates: /etc/kubernetes/bootstrap-kubelet.conf
register: kubeadm_result
- debug:
var: kubeadm_result
verbosity: 2
- hosts: master
remote_user: ubuntu
tasks:
- name: Make directories for deployment artifacts
file:
path: "{{ item }}"
state: directory
mode: 0755
owner: "{{ ansible_effective_user_id }}"
group: "{{ ansible_effective_group_id }}"
with_items:
- "{{ ansible_env.HOME }}/deploy"
- "{{ ansible_env.HOME }}/deploy/k8s-base"
- name: Copy core manifests
copy:
src: "k8s/_base/manifests/{{ item }}"
dest: "{{ ansible_env.HOME }}/deploy/k8s-base/{{ item }}"
owner: "{{ ansible_effective_user_id }}"
group: "{{ ansible_effective_group_id }}"
mode: 0644
with_items:
- "helm-tiller-auth.yaml"
- name: Install kubernetes manifests
shell: "kubectl apply -f {{ item }} --namespace kube-system"
with_items:
- "\"https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')\""
- "{{ ansible_env.HOME }}/deploy/k8s-base/helm-tiller-auth.yaml"
- name: Helm init / upgrade
shell: |
helm init --wait --service-account tiller --upgrade || exit 0