Module helm
Le module helm permet d'installer, mettre a jour et desinstaller des charts Helm depuis Ansible.
- name: Ajouter un depot Helm
kubernetes.core.helm_repository:
name: bitnami
repo_url: https://charts.bitnami.com/bitnami
- name: Deployer un chart Helm
kubernetes.core.helm:
name: my-redis
chart_ref: bitnami/redis
release_namespace: production
create_namespace: true
values:
architecture: standalone
auth:
password: "{{ redis_password }}"
master:
persistence:
size: 8Gi
Mettre a jour un release Helm
- name: Mettre a jour Redis
kubernetes.core.helm:
name: my-redis
chart_ref: bitnami/redis
release_namespace: production
values:
master:
resources:
requests:
memory: "256Mi"
cpu: "200m"
wait: true
timeout: "10m0s"
Gerer les informations de release
- name: Obtenir les infos du release
kubernetes.core.helm_info:
name: my-redis
release_namespace: production
register: helm_info
- name: Afficher la version
ansible.builtin.debug:
msg: "Version du chart : {{ helm_info.status.chart }}"
Desinstaller un release
- name: Supprimer le release Redis
kubernetes.core.helm:
name: my-redis
release_namespace: production
state: absent
Playbook complet de deploiement K8s
- hosts: localhost
connection: local
vars:
app_version: "2.1.0"
tasks:
- name: Creer le namespace
kubernetes.core.k8s:
state: present
definition:
apiVersion: v1
kind: Namespace
metadata:
name: staging
- name: Deployer la base de donnees via Helm
kubernetes.core.helm:
name: db
chart_ref: bitnami/postgresql
release_namespace: staging
values:
auth:
postgresPassword: "{{ db_password }}"
wait: true
- name: Deployer l'application
kubernetes.core.k8s:
state: present
template: app-deployment.yaml.j2
Important : Le module helm necessite que le binaire helm soit installe sur la machine de controle Ansible.