Add kubernetes part
This commit is contained in:
118
kube.yml
118
kube.yml
@@ -14,40 +14,98 @@
|
||||
debug:
|
||||
msg: "{{ ansible_hostname }} : {{ ansible_distribution }} {{ ansible_distribution_version }} - {{ ansible_default_ipv4.address }}"
|
||||
tags:
|
||||
- test
|
||||
- always
|
||||
|
||||
# Preparer le /etc/containerd/config.toml
|
||||
|
||||
# version = 2
|
||||
# [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
|
||||
# SystemdCgroup = true
|
||||
|
||||
# when kubernetes_config_kubelet_configuration.cgroupDriver: "systemd"
|
||||
|
||||
pre_tasks:
|
||||
|
||||
- name: Create containerd config for Kubernetes
|
||||
template:
|
||||
src: "../templates/containerd.toml.j2"
|
||||
dest: "/etc/containerd/config.toml"
|
||||
owner: root
|
||||
group: root
|
||||
mode: 0644
|
||||
- name: Add the overlay and br_netfilter modules and make sure it is loaded after reboots
|
||||
community.general.modprobe:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
persistent: present
|
||||
loop:
|
||||
- overlay
|
||||
- br_netfilter
|
||||
tags:
|
||||
- kubernetes
|
||||
- test
|
||||
when:
|
||||
- containerd_config_systemd is true
|
||||
- kubernetes_config_kubelet_configuration.cgroupDriver is "systemd"
|
||||
notify: restart containerd
|
||||
- always
|
||||
|
||||
# restart containerd
|
||||
|
||||
roles:
|
||||
- { role: geerlingguy.containerd, tags: [kubernetes, containerd] }
|
||||
- { role: geerlingguy.kubernetes, tags: kubernetes }
|
||||
|
||||
handlers:
|
||||
- name: restart containerd
|
||||
service:
|
||||
name: containerd
|
||||
state: restarted
|
||||
tasks:
|
||||
|
||||
- name: Add kubectl alias and completion
|
||||
ansible.builtin.lineinfile:
|
||||
path: "{{ item.path }}"
|
||||
regexp: "{{ item.regexp }}"
|
||||
state: "{{ item.state|default('present') }}"
|
||||
line: "{{ item.line|default(omit) }}"
|
||||
loop: "{{ kubernetes_alias_bashrc }}"
|
||||
tags:
|
||||
- kubernetes
|
||||
- alias
|
||||
|
||||
- name: create kubernetes app base dir
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
mode: 0755
|
||||
owner: root
|
||||
group: root
|
||||
with_items:
|
||||
- "{{ kubernetes_tree_base_dir | last }}"
|
||||
- "{{ kubernetes_tree_base_dir | last }}/{{ kubernetes_service }}"
|
||||
tags:
|
||||
- kubernetes
|
||||
- git
|
||||
|
||||
# - name: Allow pods on control plane (if configured).
|
||||
# command: "kubectl taint nodes --all node-role.kubernetes.io/control-plane-"
|
||||
# when:
|
||||
# - kubernetes_allow_pods_on_control_plane | bool
|
||||
# - not kubernetes_init_stat.stat.exists
|
||||
|
||||
|
||||
# need pip kubernetes to use k8s module
|
||||
- name: Create all k8s namespace
|
||||
kubernetes.core.k8s:
|
||||
name: argocd
|
||||
api_version: v1
|
||||
kind: Namespace
|
||||
state: present
|
||||
tags:
|
||||
- test
|
||||
|
||||
# Download and apply manifest
|
||||
- name: Download all manifest to the cluster.
|
||||
ansible.builtin.get_url:
|
||||
url: https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
|
||||
dest: "{{ kubernetes_tree_base_dir | last }}/{{ kubernetes_service }}/install.yaml"
|
||||
mode: '0664'
|
||||
tags:
|
||||
- test
|
||||
|
||||
- name: Apply metrics-server manifest to the cluster.
|
||||
kubernetes.core.k8s:
|
||||
state: present
|
||||
namespace: argocd
|
||||
src: "{{ kubernetes_tree_base_dir | last }}/{{ kubernetes_service }}/install.yaml"
|
||||
tags:
|
||||
- test
|
||||
|
||||
# - name: Remove file (delete file)
|
||||
# ansible.builtin.file:
|
||||
# path: /etc/foo.txt
|
||||
# state: absent
|
||||
|
||||
- name: Create all k8s objects needed
|
||||
kubernetes.core.k8s:
|
||||
namespace: "{{ item.namespace }}"
|
||||
kind: "{{ item.kind }}"
|
||||
definition: "{{ item.definition }}"
|
||||
state: present
|
||||
loop: "{{ kubernetes_argocd_objects }}"
|
||||
tags:
|
||||
- test
|
||||
- last
|
||||
|
||||
|
||||
Reference in New Issue
Block a user