Ya fue liberada la primera version de Incus, el fork de LXD
Hace poco se presento el lanzamiento de la primera versión del proyecto Incus, del cual ya hablamos aquí en el blog y que para no entrar en muchos detalles les puedo decir aquí brevemente que es una bifurcación del sistema de gestión de contenedores LXD, creado por el antiguo equipo de desarrollo que una vez creó LXD.
Sobre el lanzamiento de la primera versión de Incus, cabe mencionar que sigue a la actualización LXD 5.18 lanzada recientemente y se centra principalmente en cambiar el nombre y reorganizar el código base, así como en eliminar funciones obsoletas. Al mismo tiempo, la nueva versión también incluye cambios específicos de Incus en la interfaz de línea de comandos y API, que no pudieron incluirse en LXD debido a requisitos de compatibilidad con versiones anteriores.
¿Qué novedades presenta la primera versión de Incus?
En este primer lanzamiento del proyecto, aparte de lo que ya se menciono arriba sobre los cambios internos relacionados con el nombre y demás, en el dispositivo /dev/lxd ha sido reemplazado por /dev/incus, las referencias a lxd en el código han sido reemplazadas por incus.Las funciones obsoletas de *Container se eliminaron de la API, que fueron reemplazadas por funciones de *Instance después de la implementación de la administración de máquinas virtuales.
Esta primera versión de Incus se destaca que se ha realizado una transición al motor SQL integrado Cowsql, que es compatible con SQLite, admite la replicación de datos, la recuperación automática de fallas y proporciona tolerancia a fallas al distribuir controladores en múltiples nodos.
Ademas de ello se han realizado cambios en los comandos internos, pues se ha agregado a la interfaz de línea de comandos para administrar snapshots los siguientes comandos para la ejecución de operaciones: incus snapshot create, incus snapshot delete, incus snapshot list, incus snapshot rename e incus snapshot restore.
Otro de los cambios que se destaca, es que se agregó la utilidad lxd-to-incus para la migración de LXD a Incus (se admite la conversión automática de archivos de configuración a partir de LXD 4.0 a 5.18). La migración de clústeres aún no es compatible.
También se destaca que el tipo de elementos de configuración del servidor se ha cambiado de, asi como tambien que se eliminó el método de autenticación obsoleto core.trust_password que reemplaza la autenticación basada en token.
De los demás cambios que se destacan:
- Los puntos de acceso API obsoletos /1.0/containers y /1.0/virtual-machines se eliminaron y se reemplazaron por /1.0/instances.
- La versión 1.20 se declara como la versión mínima admitida del idioma Go.
- Dentro de las máquinas virtuales de Incus, el proveedor ahora está configurado en Linux Containers y el producto está configurado en Incus.
- El dispositivo virtio-serial utilizado para la comunicación limitada con Incus antes de establecer acceso completo al agente a través de vsock ahora es org.linuxcontainers.incus.
Algunas funciones nativas de Ubuntu o que dependen de software obsoleto o no compatible han sido descontinuadas: - Se eliminó la compatibilidad con los enlaces Fan de Ubuntu (bridge.mode, fan.overlay_subnet, fan.underlay_subnet, fan.type), que dependen de los parches del kernel utilizados solo en Ubuntu.
- Se eliminó el FS shiftfs, compatible solo con paquetes con el kernel de Ubuntu; un FS virtual para asignar puntos de montaje a espacios de nombres de usuario.
- Se eliminó la compatibilidad con el sistema de autenticación Candid específico de Canonical.
- Se eliminó el soporte para la implementación propietaria del mecanismo de autenticación RBAC (Control de acceso basado en roles) creado por Canonical basado en Macaroons y Candid.
- Componentes eliminados para la integración con MAAS (Metal-as-a-Service), un conjunto de herramientas para implementar rápidamente configuraciones de Ubuntu.
- Se eliminó el concepto de acceder al servidor utilizando una contraseña confiable (core.trust_password).
En el futuro, los desarrolladores planean transferir mejoras y correcciones útiles desde el código base LXD, y también desarrollarán sus innovaciones originales, que Canonical podrá trasladar a LXD si lo desea. El proyecto Incus también planea abordar algunos errores conceptuales cometidos durante el desarrollo de LXD que anteriormente no podían corregirse sin romper la compatibilidad con versiones anteriores.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.