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 do 1.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śli cni_tmp_directory było ustawione na /tmp, operacja unarchive zmieniała tryb tego katalogu. Dodanie statycznej podścieżki do cni_tmp_directory rozwiązuje ten problem.

0.5.0+1.3.0

  • zaktualizowano cni_version do 1.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 i tap
  • zmieniono nazwę scenariusza Molecule kvm na default / przeniesiono opcje memory + 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

http://www.tauceti.blog

Zainstaluj
ansible-galaxy install githubixx.cni
Licencja
Unknown
Pobrania
216
Właściciel
Senior System Engineer - Python, Go, Cloud, Kubernetes, Commodore, Retro, 80's ;-)