create a XTesting directory to first add the required files for a RIC platform deploy...
[it/test.git] / XTesting / kubeadm / cluster.yml
diff --git a/XTesting/kubeadm/cluster.yml b/XTesting/kubeadm/cluster.yml
new file mode 100644 (file)
index 0000000..15db72c
--- /dev/null
@@ -0,0 +1,132 @@
+- hosts: all\r
+  become: true\r
+  tasks:\r
+  - name: Install packages that allow apt to be used over HTTPS\r
+    apt:\r
+      name: "{{ packages }}"\r
+      state: present\r
+    vars:\r
+      packages:\r
+      - apt-transport-https\r
+      - ca-certificates\r
+      - curl\r
+      - gnupg-agent\r
+      - software-properties-common\r
+\r
+  - name: Add the apt signing key for Docker\r
+    apt_key:\r
+      url: https://download.docker.com/linux/ubuntu/gpg\r
+      state: present\r
+\r
+  - name: Add the apt repository for the stable Docker version\r
+    apt_repository:\r
+      repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable\r
+      state: present\r
+\r
+  - name: Install Docker and its dependencies\r
+    apt:\r
+      name: "{{ packages }}"\r
+      state: present\r
+      update_cache: yes\r
+    vars:\r
+      packages:\r
+      - docker-ce\r
+      - docker-ce-cli\r
+      - containerd.io\r
+\r
+  - name: Ensure user group exists\r
+    group:\r
+      name: "{{ ansible_user }}"\r
+\r
+  - name: Add user to the docker group\r
+    user:\r
+      name: "{{ ansible_user }}"\r
+      groups: docker,{{ ansible_user }}\r
+      append: yes\r
+\r
+  - name: Remove swapfile from /etc/fstab\r
+    mount:\r
+      name: "{{ item }}"\r
+      fstype: swap\r
+      state: absent\r
+    with_items:\r
+      - swap\r
+      - none\r
+\r
+  - name: Disable swap\r
+    command: swapoff -a\r
+    when: ansible_swaptotal_mb > 0\r
+\r
+  - name: Add the apt signing key for Kubernetes\r
+    apt_key:\r
+      url: https://packages.cloud.google.com/apt/doc/apt-key.gpg\r
+      state: present\r
+\r
+  - name: Add the apt repository for Kubernetes\r
+    apt_repository:\r
+      repo: deb https://apt.kubernetes.io/ kubernetes-xenial main\r
+      state: present\r
+      filename: kubernetes.list\r
+\r
+  - name: Install Kubernetes binaries\r
+    apt:\r
+      name: "{{ packages }}"\r
+      update_cache: yes\r
+    vars:\r
+      packages:\r
+        - kubelet=1.19.16-00\r
+        - kubeadm=1.19.16-00\r
+        - kubectl=1.19.16-00\r
+\r
+  - name: Restart kubelet\r
+    service:\r
+      name: kubelet\r
+      daemon_reload: yes\r
+      state: restarted\r
+\r
+  - name: Making systemd as Cgroup Driver\r
+    copy:\r
+      src: daemon.json\r
+      dest: /etc/docker/daemon.json\r
+\r
+  - name: Restaring Docker...\r
+    service:\r
+      name: docker\r
+      state: restarted\r
+\r
+  - name: update sysctl param\r
+    copy:\r
+      src: k8s.conf\r
+      dest: /etc/sysctl.d/k8s.conf\r
+      owner: root\r
+      group: root\r
+\r
+  - name: System reload\r
+    shell: sysctl --system\r
+\r
+  - name: Initialize the Kubernetes cluster\r
+    become: true\r
+    command: kubeadm init --pod-network-cidr=10.244.0.0/16\r
+\r
+  - name: Setup kubeconfig\r
+    command: "{{ item }}"\r
+    with_items:\r
+     - mkdir -p "$HOME/.kube"\r
+     - sudo cp /etc/kubernetes/admin.conf "$HOME/.kube/config"\r
+     - sudo chown "{{ ansible_user }}:{{ ansible_user }}" "$HOME/.kube/config"\r
+\r
+  - name: Deploy Flannel\r
+    become: true\r
+    command: kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml\r
+\r
+  - name: Remove taints from master node\r
+    become: true\r
+    command: kubectl taint nodes --all node-role.kubernetes.io/master-\r
+\r
+  - name: Create Tiller service account\r
+    become: true\r
+    command: kubectl -n kube-system create serviceaccount tiller\r
+\r
+  - name: Setup Tiller ClusterBinding\r
+    become: true\r
+    command: kubectl create clusterrolebinding tiller --clusterrole=cluster-admin --serviceaccount=kube-system:tiller\r