@@ -0,0 +1,129 @@
|
||||
######################################
|
||||
#tasks for vanilla kubernetes install#
|
||||
######################################
|
||||
---
|
||||
- name: Get OS version name
|
||||
command: lsb_release -cs
|
||||
register: os_codename
|
||||
changed_when: false
|
||||
|
||||
- name: Get OS release number
|
||||
command: lsb_release -rs
|
||||
register: os_release
|
||||
changed_when: false
|
||||
|
||||
- name: Add an apt signing key for CRI-O
|
||||
apt_key:
|
||||
url: "{{ item }}"
|
||||
state: present
|
||||
loop:
|
||||
- 'https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/{{ crio_version }}/Debian_{{ os_release.stdout }}/Release.key'
|
||||
- 'https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/Debian_{{ os_release.stdout }}/Release.key'
|
||||
|
||||
- name: Add CRI-O apt repository for stable version
|
||||
apt_repository:
|
||||
repo: deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/Debian_{{ os_release.stdout }}/ /
|
||||
filename: devel:kubic:libcontainers:stable.list
|
||||
state: present
|
||||
update_cache: yes
|
||||
- apt_repository:
|
||||
repo: deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/{{ crio_version }}/Debian_{{ os_release.stdout }}/ /
|
||||
filename: devel:kubic:libcontainers:stable:cri-o:{{ crio_version }}.list
|
||||
state: present
|
||||
update_cache: yes
|
||||
|
||||
- name: Install CRI-O packages
|
||||
apt:
|
||||
name: "{{ packages }}"
|
||||
state: present
|
||||
update_cache: yes
|
||||
allow_unauthenticated: true
|
||||
vars:
|
||||
packages:
|
||||
- cri-o
|
||||
- cri-o-runc
|
||||
|
||||
- name: Enable and start CRI-O service
|
||||
ansible.builtin.systemd:
|
||||
name: crio.service
|
||||
state: started
|
||||
enabled: yes
|
||||
|
||||
- name: CRI-O use systemd cgroup driver
|
||||
copy:
|
||||
dest: "/etc/crio/crio.conf.d/02-cgroup-manager.conf"
|
||||
content: |
|
||||
[crio.runtime]
|
||||
conmon_cgroup = "pod"
|
||||
cgroup_manager = "systemd"
|
||||
|
||||
- name: Overriding the CRI-O sandbox (pause) image
|
||||
lineinfile:
|
||||
path: /etc/crio/crio.conf
|
||||
regexp: '#? ?pause_image ?= ?"registry\.k8s\.io/pause:(.+)"'
|
||||
backrefs: True
|
||||
line: pause_image = "registry.k8s.io/pause:\1"
|
||||
|
||||
- name: Forwarding IPv4 and letting iptables see bridged traffic
|
||||
copy:
|
||||
dest: "/etc/modules-load.d/k8s.conf"
|
||||
content: |
|
||||
overlay
|
||||
br_netfilter
|
||||
|
||||
- name: modprobe overlay & br-netfilter
|
||||
command: "{{ item }}"
|
||||
loop:
|
||||
- modprobe overlay
|
||||
- modprobe br_netfilter
|
||||
|
||||
#sysctl params required by setup, params persist across reboots
|
||||
- name: ipv4 bridge forward
|
||||
copy:
|
||||
dest: "/etc/sysctl.d/k8s.conf"
|
||||
content: |
|
||||
net.bridge.bridge-nf-call-iptables = 1
|
||||
net.bridge.bridge-nf-call-ip6tables = 1
|
||||
net.ipv4.ip_forward = 1
|
||||
|
||||
- name: Apply sysctl params without reboot
|
||||
command: sysctl --system
|
||||
|
||||
|
||||
- name: Import Kubernetes GPG key
|
||||
raw: "curl -fsSL https://pkgs.k8s.io/core:/stable:/v{{ kubernetesVersion.split('.')[:2] | join('.') }}/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg"
|
||||
|
||||
- name: Add Kubernetes apt repository
|
||||
raw: "echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v{{ kubernetesVersion.split('.')[:2] | join('.') }}/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list"
|
||||
|
||||
- name: Remove swapfile from /etc/fstab
|
||||
mount:
|
||||
name: "{{ item }}"
|
||||
fstype: swap
|
||||
state: absent
|
||||
with_items:
|
||||
- swap
|
||||
- none
|
||||
|
||||
- name: Disable swap
|
||||
command: swapoff -a
|
||||
|
||||
- name: Update apt cache
|
||||
raw: apt-get -y update
|
||||
changed_when: False
|
||||
|
||||
- name: Install Kubernetes binaries
|
||||
apt:
|
||||
name: "{{ packages }}"
|
||||
state: present
|
||||
update_cache: yes
|
||||
vars:
|
||||
packages:
|
||||
- "kubelet={{ kubernetesVersion }}-1.1"
|
||||
- "kubeadm={{ kubernetesVersion }}-1.1"
|
||||
- "kubectl={{ kubernetesVersion }}-1.1"
|
||||
|
||||
- name: Add kubectl completion bash
|
||||
lineinfile:
|
||||
path: ~/.bashrc
|
||||
line: source <(kubectl completion bash)
|
||||
@@ -0,0 +1,39 @@
|
||||
######################################
|
||||
# Setup k8s Cluster #
|
||||
######################################
|
||||
---
|
||||
- name: kubernetes installation
|
||||
block:
|
||||
- name: vanilla kubernetes install block
|
||||
when: kubernetesClusterType == 'vanilla'
|
||||
block:
|
||||
- name: Read vanilla kubernetes values
|
||||
include_vars:
|
||||
file: ../vars/k8s_cluster/kubernetes/vanilla_kubernetes.yml
|
||||
|
||||
- import_tasks: ../tasks/k8s_cluster/kubernetes/install_vanilla_kubernetes.yml
|
||||
|
||||
# ToDo: find solution for VIP
|
||||
# - name: Read kube_vip values for virtual IP
|
||||
# include_vars:
|
||||
# file: ../vars/k8s_cluster/kube_vip/kube_vip.yml
|
||||
# - import_tasks: ../tasks/k8s_cluster/kube_vip/install_kube_vip.yml
|
||||
# when: inventory_hostname in groups['controller']
|
||||
|
||||
- import_tasks: ../tasks/k8s_cluster/cluster/vanilla_kubernetes/init_kubernetes_cluster.yml
|
||||
when: inventory_hostname in groups['controller_init']
|
||||
- import_tasks: ../tasks/k8s_cluster/cluster/vanilla_kubernetes/generate_join_command.yml
|
||||
when: inventory_hostname in groups['controller_init']
|
||||
#ToDo: when controller replica exists
|
||||
## - import_tasks: ../tasks/k8s_cluster/cluster/vanilla_kubernetes/add_controller_to_cluster.yml
|
||||
## when: inventory_hostname in groups['controller_replica']
|
||||
- import_tasks: ../tasks/k8s_cluster/cluster/vanilla_kubernetes/add_worker_to_cluster.yml
|
||||
when: inventory_hostname in groups['worker']
|
||||
- import_tasks: ../tasks/k8s_cluster/cluster/vanilla_kubernetes/restart_coredns.yml
|
||||
when: inventory_hostname in groups['controller_init']
|
||||
#
|
||||
# - name: install microk8s block
|
||||
# when: kubernetesClusterType == 'microk8s'
|
||||
# block:
|
||||
# - debug: msg='ToDo install microk8s'
|
||||
|
||||
Reference in New Issue
Block a user