69 lines
1.8 KiB
YAML
69 lines
1.8 KiB
YAML
---
|
|
- name: Install kubernetes
|
|
block:
|
|
- name: 'Add kubernetes repo key'
|
|
apt_key:
|
|
url: https://packages.cloud.google.com/apt/doc/apt-key.gpg
|
|
state: present
|
|
become: true
|
|
- name: Add kubernetes repository
|
|
apt_repository:
|
|
repo: deb http://apt.kubernetes.io kubernetes-xenial main
|
|
state: present
|
|
filename: 'kubernetes'
|
|
become: true
|
|
- name: Install kubernetes components
|
|
apt:
|
|
name: ['kubelet={{kubernetes_version}}-*', 'kubeadm={{kubernetes_version}}-*', 'kubectl={{kubernetes_version}}-*']
|
|
state: present
|
|
update_cache: yes
|
|
#force: yes
|
|
#dpkg_options: force-downgrade
|
|
|
|
- name: Hold kubernetes packages
|
|
dpkg_selections:
|
|
name: "{{item}}"
|
|
selection: hold
|
|
with_items:
|
|
- kubelet
|
|
- kubectl
|
|
- kubeadm
|
|
|
|
- name: Enable kubelet service
|
|
systemd:
|
|
name: kubelet
|
|
enabled: true
|
|
masked: false
|
|
|
|
- name: Check if Kubernetes has already been initialized.
|
|
stat:
|
|
path: /etc/kubernetes/admin.conf
|
|
register: kubernetes_init_stat
|
|
|
|
|
|
|
|
# Set up master.
|
|
- include_tasks: k8s-master.yml
|
|
when: kubernetes_role == 'master'
|
|
|
|
# Set up nodes.
|
|
- name: Get the kubeadm join command from the Kubernetes master.
|
|
command: kubeadm token create --print-join-command
|
|
changed_when: false
|
|
when: kubernetes_role == 'master'
|
|
register: kubernetes_join_command_result
|
|
|
|
- name: Set the kubeadm join command globally.
|
|
set_fact:
|
|
kubernetes_join_command: >
|
|
{{ kubernetes_join_command_result.stdout }}
|
|
{{ kubernetes_join_command_extra_opts }}
|
|
when: kubernetes_join_command_result.stdout is defined
|
|
delegate_to: "{{ item }}"
|
|
delegate_facts: true
|
|
with_items: "{{ groups['all'] }}"
|
|
|
|
- include_tasks: k8s-node.yml
|
|
when: kubernetes_role == 'node'
|
|
|