create a XTesting directory to first add the required files for a RIC platform deploy...
[it/test.git] / XTesting / kubeadm / cluster.yml
1 - hosts: all\r
2   become: true\r
3   tasks:\r
4   - name: Install packages that allow apt to be used over HTTPS\r
5     apt:\r
6       name: "{{ packages }}"\r
7       state: present\r
8     vars:\r
9       packages:\r
10       - apt-transport-https\r
11       - ca-certificates\r
12       - curl\r
13       - gnupg-agent\r
14       - software-properties-common\r
15 \r
16   - name: Add the apt signing key for Docker\r
17     apt_key:\r
18       url: https://download.docker.com/linux/ubuntu/gpg\r
19       state: present\r
20 \r
21   - name: Add the apt repository for the stable Docker version\r
22     apt_repository:\r
23       repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable\r
24       state: present\r
25 \r
26   - name: Install Docker and its dependencies\r
27     apt:\r
28       name: "{{ packages }}"\r
29       state: present\r
30       update_cache: yes\r
31     vars:\r
32       packages:\r
33       - docker-ce\r
34       - docker-ce-cli\r
35       - containerd.io\r
36 \r
37   - name: Ensure user group exists\r
38     group:\r
39       name: "{{ ansible_user }}"\r
40 \r
41   - name: Add user to the docker group\r
42     user:\r
43       name: "{{ ansible_user }}"\r
44       groups: docker,{{ ansible_user }}\r
45       append: yes\r
46 \r
47   - name: Remove swapfile from /etc/fstab\r
48     mount:\r
49       name: "{{ item }}"\r
50       fstype: swap\r
51       state: absent\r
52     with_items:\r
53       - swap\r
54       - none\r
55 \r
56   - name: Disable swap\r
57     command: swapoff -a\r
58     when: ansible_swaptotal_mb > 0\r
59 \r
60   - name: Add the apt signing key for Kubernetes\r
61     apt_key:\r
62       url: https://packages.cloud.google.com/apt/doc/apt-key.gpg\r
63       state: present\r
64 \r
65   - name: Add the apt repository for Kubernetes\r
66     apt_repository:\r
67       repo: deb https://apt.kubernetes.io/ kubernetes-xenial main\r
68       state: present\r
69       filename: kubernetes.list\r
70 \r
71   - name: Install Kubernetes binaries\r
72     apt:\r
73       name: "{{ packages }}"\r
74       update_cache: yes\r
75     vars:\r
76       packages:\r
77         - kubelet=1.19.16-00\r
78         - kubeadm=1.19.16-00\r
79         - kubectl=1.19.16-00\r
80 \r
81   - name: Restart kubelet\r
82     service:\r
83       name: kubelet\r
84       daemon_reload: yes\r
85       state: restarted\r
86 \r
87   - name: Making systemd as Cgroup Driver\r
88     copy:\r
89       src: daemon.json\r
90       dest: /etc/docker/daemon.json\r
91 \r
92   - name: Restaring Docker...\r
93     service:\r
94       name: docker\r
95       state: restarted\r
96 \r
97   - name: update sysctl param\r
98     copy:\r
99       src: k8s.conf\r
100       dest: /etc/sysctl.d/k8s.conf\r
101       owner: root\r
102       group: root\r
103 \r
104   - name: System reload\r
105     shell: sysctl --system\r
106 \r
107   - name: Initialize the Kubernetes cluster\r
108     become: true\r
109     command: kubeadm init --pod-network-cidr=10.244.0.0/16\r
110 \r
111   - name: Setup kubeconfig\r
112     command: "{{ item }}"\r
113     with_items:\r
114      - mkdir -p "$HOME/.kube"\r
115      - sudo cp /etc/kubernetes/admin.conf "$HOME/.kube/config"\r
116      - sudo chown "{{ ansible_user }}:{{ ansible_user }}" "$HOME/.kube/config"\r
117 \r
118   - name: Deploy Flannel\r
119     become: true\r
120     command: kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml\r
121 \r
122   - name: Remove taints from master node\r
123     become: true\r
124     command: kubectl taint nodes --all node-role.kubernetes.io/master-\r
125 \r
126   - name: Create Tiller service account\r
127     become: true\r
128     command: kubectl -n kube-system create serviceaccount tiller\r
129 \r
130   - name: Setup Tiller ClusterBinding\r
131     become: true\r
132     command: kubectl create clusterrolebinding tiller --clusterrole=cluster-admin --serviceaccount=kube-system:tiller\r