Add kubernetes part

This commit is contained in:
2023-10-01 10:10:53 +02:00
parent 8353c02b42
commit 511dcde61a
9 changed files with 211 additions and 76 deletions

118
kube.yml
View File

@@ -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