Created
July 12, 2019 05:52
-
-
Save ekc/d0558da13612cc7c860e7d1ae7b93acf to your computer and use it in GitHub Desktop.
Supported docs for calico-node issue
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
- hosts: all | |
become: true | |
tasks: | |
- name: Install packages that allow apt to be used over HTTPS | |
apt: | |
name: "{{ packages }}" | |
state: present | |
update_cache: yes | |
vars: | |
packages: | |
- apt-transport-https | |
- ca-certificates | |
- curl | |
- gnupg-agent | |
- software-properties-common | |
- name: Add an apt signing key for Docker | |
apt_key: | |
url: https://download.docker.com/linux/ubuntu/gpg | |
state: present | |
- name: Add apt repository for stable version | |
apt_repository: | |
repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable | |
state: present | |
- name: Install docker and its dependecies | |
apt: | |
name: "{{ packages }}" | |
state: present | |
update_cache: yes | |
vars: | |
packages: | |
- docker-ce | |
- docker-ce-cli | |
- containerd.io | |
notify: | |
- docker status | |
- name: Add vagrant user to docker group | |
user: | |
name: vagrant | |
group: docker | |
- 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 an apt signing key for Kubernetes | |
apt_key: | |
url: https://packages.cloud.google.com/apt/doc/apt-key.gpg | |
state: present | |
- name: Adding 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 }}" | |
state: present | |
update_cache: yes | |
vars: | |
packages: | |
- kubelet | |
- kubeadm | |
- kubectl | |
- name: Install additional system packages | |
apt: | |
name: "{{ packages }}" | |
state: present | |
update_cache: yes | |
vars: | |
packages: | |
- jq | |
- name: Configure node ip | |
lineinfile: | |
path: /etc/default/kubelet | |
line: KUBELET_EXTRA_ARGS=--node-ip={{ node_ip }} | |
create: yes | |
- name: Restart kubelet | |
service: | |
name: kubelet | |
daemon_reload: yes | |
state: restarted | |
- name: Initialize the Kubernetes cluster using kubeadm | |
command: kubeadm init --apiserver-advertise-address="192.168.50.10" --apiserver-cert-extra-sans="192.168.50.10" --node-name k8s-master --pod-network-cidr=192.168.0.0/16 | |
- name: Setup kubeconfig for vagrant user | |
command: "{{ item }}" | |
with_items: | |
- mkdir -p /home/vagrant/.kube | |
- cp -i /etc/kubernetes/admin.conf /home/vagrant/.kube/config | |
- chown vagrant:vagrant /home/vagrant/.kube/config | |
- name: Install calico pod network | |
become: false | |
command: kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml | |
- name: Generate join command | |
command: kubeadm token create --print-join-command | |
register: join_command | |
- name: Copy join command to local file | |
local_action: | |
module: copy | |
content: "{{ join_command.stdout_lines[0] }}" | |
dest: "./join-command" | |
become: false | |
handlers: | |
- name: docker status | |
service: | |
name: docker | |
state: started |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
- hosts: all | |
become: true | |
tasks: | |
- name: Install packages that allow apt to be used over HTTPS | |
apt: | |
name: "{{ packages }}" | |
state: present | |
update_cache: yes | |
vars: | |
packages: | |
- apt-transport-https | |
- ca-certificates | |
- curl | |
- gnupg-agent | |
- software-properties-common | |
- name: Add an apt signing key for Docker | |
apt_key: | |
url: https://download.docker.com/linux/ubuntu/gpg | |
state: present | |
- name: Add apt repository for stable version | |
apt_repository: | |
repo: deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable | |
state: present | |
- name: Install docker and its dependecies | |
apt: | |
name: "{{ packages }}" | |
state: present | |
update_cache: yes | |
vars: | |
packages: | |
- docker-ce | |
- docker-ce-cli | |
- containerd.io | |
notify: | |
- docker status | |
- name: Add vagrant user to docker group | |
user: | |
name: vagrant | |
group: docker | |
- 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 an apt signing key for Kubernetes | |
apt_key: | |
url: https://packages.cloud.google.com/apt/doc/apt-key.gpg | |
state: present | |
- name: Adding 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 }}" | |
state: present | |
update_cache: yes | |
vars: | |
packages: | |
- kubelet | |
- kubeadm | |
- kubectl | |
- name: Install additional system packages | |
apt: | |
name: "{{ packages }}" | |
state: present | |
update_cache: yes | |
vars: | |
packages: | |
- jq | |
- name: Configure node ip | |
lineinfile: | |
path: /etc/default/kubelet | |
line: KUBELET_EXTRA_ARGS=--node-ip={{ node_ip }} | |
create: yes | |
- name: Restart kubelet | |
service: | |
name: kubelet | |
daemon_reload: yes | |
state: restarted | |
- name: Copy the join command to server location | |
copy: | |
src: join-command | |
dest: /tmp/join-command.sh | |
mode: 0777 | |
- name: Join the node to cluster | |
command: sh /tmp/join-command.sh | |
handlers: | |
- name: docker status | |
service: | |
name: docker | |
state: started |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
IMAGE_NAME = "generic/ubuntu1604" | |
N = 2 | |
Vagrant.configure("2") do |config| | |
config.ssh.insert_key = false | |
config.vm.provider "libvirt" do |v| | |
v.memory = 1024 | |
v.cpus = 2 | |
end | |
config.vm.define "k8s-master" do |master| | |
master.vm.box = IMAGE_NAME | |
master.vm.network "private_network", ip: "192.168.50.10" | |
master.vm.hostname = "k8s-master" | |
master.vm.provision "ansible" do |ansible| | |
ansible.playbook = "kubernetes-setup/master-playbook.yml" | |
ansible.extra_vars = { | |
node_ip: "192.168.50.10", | |
} | |
end | |
end | |
(1..N).each do |i| | |
config.vm.define "node-#{i}" do |node| | |
node.vm.box = IMAGE_NAME | |
node.vm.network "private_network", ip: "192.168.50.#{i + 10}" | |
node.vm.hostname = "node-#{i}" | |
node.vm.provision "ansible" do |ansible| | |
ansible.playbook = "kubernetes-setup/node-playbook.yml" | |
ansible.extra_vars = { | |
node_ip: "192.168.50.#{i + 10}", | |
} | |
end | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment