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