githubixx.cni

ansible-role-cni

Rol de Ansible para instalar CNI - Interfaz de Red de Contenedores. CNI (Interfaz de Red de Contenedores), un proyecto de la Cloud Native Computing Foundation, consiste en una especificación y bibliotecas para escribir complementos que configuran interfaces de red en contenedores de Linux, junto con varios complementos admitidos. CNI se ocupa solo de la conectividad de red de los contenedores y de eliminar los recursos asignados cuando se elimina el contenedor. Debido a este enfoque, CNI tiene un amplio rango de soporte y la especificación es fácil de implementar.

Historial de cambios

Historial de cambios:

Ver el CHANGELOG completo.

Cambios recientes:

0.7.0+1.4.0

  • Añadir soporte para Ubuntu 24.04.

0.6.0+1.4.0

  • Actualizar cni_version a 1.4.0.

0.5.1+1.3.0

  • Ajustar el modo de directorio de descompresión.
  • Agregar una subruta al valor de cni_tmp_directory para evitar el cambio de permisos del directorio padre. Si cni_tmp_directory se estableció en /tmp, la operación de descompresión cambió el modo de ese directorio. Agregar una subruta estática a cni_tmp_directory evita el problema.

0.5.0+1.3.0

  • Actualizar cni_version a 1.3.0.
  • Añadir paso de verificación de Molecule.
  • Eliminar soporte para Ubuntu 18.04 (alcanzó el final de su vida útil).
  • Añadir soporte para Ubuntu 22.04.
  • Añadir binaries dummy y tap de CNI.
  • Renombrar el escenario kvm de Molecule a default / mover las opciones de memory + cpus a las cajas.

Variables de rol

# Versión del plugin CNI
cni_version: "1.4.0"

# Directorio de binarios de CNI
cni_bin_directory: "/opt/cni/bin"

# Directorio de configuración de CNI
cni_conf_directory: "/etc/cni/net.d"

# Directorio para almacenar el archivo comprimido
cni_tmp_directory: "{{ lookup('env', 'TMPDIR') | default('/tmp', true) }}"

# Propietario/grupo de los archivos/directorios "CNI". Si las variables no están configuradas
# el binario resultante será propiedad del usuario actual.
cni_owner: "root"
cni_group: "root"

# Especifica los permisos de los binarios "CNI"
cni_binary_mode: "0755"

# Sistema operativo
# Opciones posibles: "linux", "windows"
cni_os: "linux"

# Arquitectura del procesador en la que debe ejecutarse "CNI".
# Otros valores posibles: "arm", "arm64", "mips64le", "ppc64le", "s390x"
cni_arch: "amd64"

# Nombre del archivo comprimido
cni_archive: "cni-plugins-{{ cni_os }}-{{ cni_arch }}-v{{ cni_version }}.tgz"

# La URL de descarga de CNI (normalmente no necesita ser cambiada)
cni_url: "https://github.com/containernetworking/plugins/releases/download/v{{ cni_version }}/{{ cni_archive }}"

# Reiniciar el servicio "kubelet" después de que los binarios o la configuración de "CNI" hayan cambiado.
# Este controlador espera un servicio systemd llamado "kubelet.service".
cni_restart_kubelet: false

Por hacer

  • Distribuir archivos de configuración de red de CNI (para Cilium esto no es necesario ya que los archivos de CNI son creados por Cilium).

Ejemplo de Playbook

- hosts: tu-anfitrión
  roles:
    - githubixx.cni

Pruebas

Este rol tiene un pequeño conjunto de pruebas que se crea utilizando Molecule, libvirt (vagrant-libvirt) y QEMU/KVM. Por favor, consulta mi publicación en el blog Probando roles de Ansible con Molecule, libvirt (vagrant-libvirt) y QEMU/KVM para saber cómo configurarlo. La configuración de prueba está aquí.

Después, se puede ejecutar molecule:

molecule converge

Esto configurará algunas máquinas virtuales (VM) con diferentes sistemas operativos Linux compatibles e instalará CNI.

Para ejecutar algunas pruebas:

molecule verify

Para limpiar, ejecuta

molecule destroy

Licencia

LICENCIA PÚBLICA GENERAL GNU Versión 3

Información del autor

http://www.tauceti.blog

Instalar
ansible-galaxy install githubixx.cni
Licencia
Unknown
Descargas
216
Propietario
Senior System Engineer - Python, Go, Cloud, Kubernetes, Commodore, Retro, 80's ;-)