githubixx.cni

ansible-role-cni

Rôle Ansible pour installer CNI - Container Network Interface. CNI (Interface Réseau de Conteneur), un projet de la Cloud Native Computing Foundation, consiste en une spécification et des bibliothèques pour écrire des plugins afin de configurer les interfaces réseau dans des conteneurs Linux, ainsi qu'un certain nombre de plugins supportés. CNI se concentre uniquement sur la connectivité réseau des conteneurs et sur la suppression des ressources allouées lorsque le conteneur est supprimé. Grâce à cette spécialisation, CNI bénéficie d'un large soutien et la spécification est simple à mettre en œuvre.

Historique des modifications

Historique des changements :

Voir le CHANGELOG complet

Changements récents :

0.7.0+1.4.0

  • ajout du support pour Ubuntu 24.04

0.6.0+1.4.0

  • mise à jour de cni_version vers 1.4.0

0.5.1+1.3.0

  • ajustement du mode du répertoire de décompression
  • ajout d'un sous-chemin à la valeur cni_tmp_directory pour éviter de changer les permissions du répertoire parent. Si cni_tmp_directory était défini sur /tmp, l'opération de décompression changeait le mode de ce répertoire. L'ajout d'un chemin sous-texte à cni_tmp_directory évite ce problème.

0.5.0+1.3.0

  • mise à jour de cni_version vers 1.3.0
  • ajout d'une étape de vérification de Molecule
  • suppression du support pour Ubuntu 18.04 (fin de vie)
  • ajout du support pour Ubuntu 22.04
  • ajout des binaires CNI dummy et tap
  • renommage du scénario Molecule kvm en default / déplacement des options memory + cpus vers les boîtes

Variables de rôle

# Version du plugin CNI
cni_version: "1.4.0"

# Répertoire des binaires CNI
cni_bin_directory: "/opt/cni/bin"

# Répertoire de configuration CNI
cni_conf_directory: "/etc/cni/net.d"

# Répertoire pour stocker l'archive
cni_tmp_directory: "{{ lookup('env', 'TMPDIR') | default('/tmp', true) }}"

# Propriétaire/groupe des fichiers/répertoires "CNI". Si les variables ne sont pas définies
# le binaire résultant sera possédé par l'utilisateur actuel.
cni_owner: "root"
cni_group: "root"

# Définit les permissions des binaires "CNI"
cni_binary_mode: "0755"

# Système d'exploitation
# Options possibles : "linux", "windows"
cni_os: "linux"

# Architecture processeur sur laquelle "CNI" doit fonctionner.
# Autres valeurs possibles : "arm", "arm64", "mips64le", "ppc64le", "s390x"
cni_arch: "amd64"

# Nom du fichier d'archive
cni_archive: "cni-plugins-{{ cni_os }}-{{ cni_arch }}-v{{ cni_version }}.tgz"

# L'URL de téléchargement CNI (normalement pas besoin de le changer)
cni_url: "https://github.com/containernetworking/plugins/releases/download/v{{ cni_version }}/{{ cni_archive }}"

# Redémarre le service "kubelet" après que les binaires ou la configuration "CNI" ont changé.
# Ce gestionnaire attend un service systemd appelé "kubelet.service".
cni_restart_kubelet: false

À faire

  • Distribuer les fichiers de configuration réseau CNI (pour Cilium, cela n'est pas nécessaire car les fichiers CNI sont créés par Cilium)

Exemple de Playbook

- hosts: votre-hôte
  roles:
    - githubixx.cni

Tests

Ce rôle dispose d'un petit ensemble de tests qui est créé à l'aide de Molecule, libvirt (vagrant-libvirt) et QEMU/KVM. Veuillez consulter mon article de blog Tester les rôles Ansible avec Molecule, libvirt (vagrant-libvirt) et QEMU/KVM pour savoir comment configurer. La configuration des tests est ici.

Ensuite, vous pouvez exécuter Molecule :

molecule converge

Cela mettra en place quelques machines virtuelles (VM) avec différents systèmes d'exploitation Linux supportés et installera CNI.

Pour exécuter quelques tests :

molecule verify

Pour nettoyer, exécutez :

molecule destroy

Licence

Licence PUBLIQUE GÉNÉRALE GNU Version 3

Informations sur l'auteur

http://www.tauceti.blog

Installer
ansible-galaxy install githubixx.cni
Licence
Unknown
Téléchargements
216
Propriétaire
Senior System Engineer - Python, Go, Cloud, Kubernetes, Commodore, Retro, 80's ;-)