githubixx.cni
ansible-role-cni
Rola Ansible do instalacji CNI - Container Network Interface. CNI (Interfejs Sieci Kontenerów), projekt Cloud Native Computing Foundation, składa się ze specyfikacji i bibliotek do pisania wtyczek do konfiguracji interfejsów sieciowych w kontenerach Linux, a także z licznych wspieranych wtyczek. CNI zajmuje się wyłącznie łącznością sieciową kontenerów i usuwaniem przydzielonych zasobów, gdy kontener jest usuwany. Dzięki temu skupieniu CNI ma szerokie wsparcie, a jego specyfikacja jest łatwa do zaimplementowania.
Historia zmian
Historia zmian:
Zobacz pełny CHANGELOG
Ostatnie zmiany:
0.7.0+1.4.0
- dodano wsparcie dla Ubuntu
24.04
0.6.0+1.4.0
- zaktualizowano
cni_version
do1.4.0
0.5.1+1.3.0
- dostosowano tryb katalogu unarchive
- dodano podścieżkę do wartości
cni_tmp_directory
, aby uniknąć zmiany uprawnień katalogu nadrzędnego. Jeślicni_tmp_directory
było ustawione na/tmp
, operacjaunarchive
zmieniała tryb tego katalogu. Dodanie statycznej podścieżki docni_tmp_directory
rozwiązuje ten problem.
0.5.0+1.3.0
- zaktualizowano
cni_version
do1.3.0
- dodano krok weryfikacji Molecule
- usunięto wsparcie dla Ubuntu
18.04
(osiągnięto EOL) - dodano wsparcie dla Ubuntu
22.04
- dodano binaria CNI
dummy
itap
- zmieniono nazwę scenariusza Molecule
kvm
nadefault
/ przeniesiono opcjememory
+cpus
do skrzynek
Zmienne roli
# Wersja wtyczki CNI
cni_version: "1.4.0"
# Katalog binarny CNI
cni_bin_directory: "/opt/cni/bin"
# Katalog konfiguracji CNI
cni_conf_directory: "/etc/cni/net.d"
# Katalog do przechowywania archiwum
cni_tmp_directory: "{{ lookup('env', 'TMPDIR') | default('/tmp', true) }}"
# Właściciel/grupa plików/directory "CNI". Jeśli zmienne nie są ustawione
# wygenerowana binarka będzie należała do bieżącego użytkownika.
cni_owner: "root"
cni_group: "root"
# Określa uprawnienia binarek "CNI"
cni_binary_mode: "0755"
# System operacyjny
# Możliwe opcje: "linux", "windows"
cni_os: "linux"
# Architektura procesora, na której powinny działać "CNI".
# Inne możliwe wartości: "arm", "arm64", "mips64le", "ppc64le", "s390x"
cni_arch: "amd64"
# Nazwa pliku archiwum
cni_archive: "cni-plugins-{{ cni_os }}-{{ cni_arch }}-v{{ cni_version }}.tgz"
# Adres URL pobierania CNI (zwykle nie trzeba go zmieniać)
cni_url: "https://github.com/containernetworking/plugins/releases/download/v{{ cni_version }}/{{ cni_archive }}"
# Uruchom ponownie usługę "kubelet" po zmianie binarek lub konfiguracji "CNI".
# Ten handler oczekuje na usługę systemd o nazwie "kubelet.service".
cni_restart_kubelet: false
Do zrobienia
- Rozdystrybuować pliki konfiguracyjne sieci CNI (dla Cilium nie jest to potrzebne, ponieważ pliki CNI są tworzone przez Cilium)
Przykład Playbooka
- hosts: twoj-host
roles:
- githubixx.cni
Testowanie
Ta rola ma mały zestaw testowy, który jest tworzony przy użyciu Molecule, libvirt (vagrant-libvirt) oraz QEMU/KVM. Zobacz mój post na blogu Testowanie ról Ansible z Molecule, libvirt (vagrant-libvirt) i QEMU/KVM, aby uzyskać informacje, jak to ustawić. Konfiguracja testowa jest tutaj.
Następnie można wykonać molekułę:
molecule converge
To skonfiguruje kilka maszyn wirtualnych (VM) z różnymi wspieranymi systemami operacyjnymi Linux i zainstaluje CNI
.
Aby przeprowadzić kilka testów:
molecule verify
Aby wyczyścić, uruchom
molecule destroy
Licencja
GNU GENERAL PUBLIC LICENSE Wersja 3
Informacje o autorze
Ansible role to install CNI (Container Network Interface)
ansible-galaxy install githubixx.cni