Collection kubernetes.core
La collection kubernetes.core fournit les modules pour interagir avec les clusters Kubernetes.
ansible-galaxy collection install kubernetes.core
pip install kubernetes
Module k8s : creer des ressources
Le module k8s permet d'appliquer des manifestes Kubernetes directement depuis Ansible.
- name: Creer un namespace
kubernetes.core.k8s:
state: present
definition:
apiVersion: v1
kind: Namespace
metadata:
name: production
- name: Deployer une application
kubernetes.core.k8s:
state: present
definition:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
namespace: production
spec:
replicas: 3
selector:
matchLabels:
app: web-app
template:
metadata:
labels:
app: web-app
spec:
containers:
- name: web
image: "{{ app_image }}:{{ app_tag }}"
ports:
- containerPort: 8080
resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "256Mi"
cpu: "200m"
Appliquer un fichier YAML externe
- name: Appliquer un manifeste YAML
kubernetes.core.k8s:
state: present
src: /path/to/deployment.yaml
- name: Appliquer depuis un template
kubernetes.core.k8s:
state: present
template: deployment.yaml.j2
Interroger les ressources
- name: Lister les pods du namespace
kubernetes.core.k8s_info:
kind: Pod
namespace: production
label_selectors:
- app=web-app
register: pod_list
- name: Afficher les pods
ansible.builtin.debug:
msg: "Pod {{ item.metadata.name }} - {{ item.status.phase }}"
loop: "{{ pod_list.resources }}"
Attendre qu'une ressource soit prete
- name: Attendre que le Deployment soit pret
kubernetes.core.k8s_info:
kind: Deployment
name: web-app
namespace: production
wait: true
wait_condition:
type: Available
status: "True"
wait_timeout: 300
Conseil : Utilisez k8s_info avec wait pour synchroniser vos deploiements et eviter les erreurs de timing.