Sobre el proyecto
Graft es un proyecto en fase alfa temprana para declarar pequeñas cargas de trabajo de contenedor en TOML tipado y hacer que Nix, Podman Quadlet y systemd las implementen. El flujo documentado es: intención TOML -> JSON validado y resuelto -> rootfs construido con Nix -> archivo .container de Quadlet -> servicio systemd -> contenedor de Podman. Su objetivo es evitar un Dockerfile, la instalación de paquetes en tiempo de ejecución y los archivos de Quadlet escritos a mano, validando los conceptos de carga de trabajo compatibles en lugar de aceptar fragmentos arbitrarios de Podman, Quadlet, systemd o Nix.
El repositorio describe un backend de almacén de rootfs para dos ámbitos: contenedores de sistema/raíz de NixOS y contenedores gestionados por el usuario de Home Manager. Las funcionalidades compatibles reportadas incluyen paquetes, comandos argv, identidad, directorio de trabajo, entorno, servicios en ejecución prolongada, trabajos finitos, trabajos de configuración, inicio explícito, dependencias de carga de trabajo tipadas, redes de contenedor seleccionadas, montajes de enlace de solo lectura por defecto, volúmenes gestionados, montajes tmpfs acotados, referencias de recursos CDI cualificadas, controles de endurecimiento tipados, validación de esquema generada y rechazo cerrado de campos reservados. La documentación separa el TOML aceptado en una referencia de configuración de un estado de capacidades autoritativo que cubre el comportamiento actual, planificado, diferido y prohibido.
Los valores de seguridad predeterminados incluyen un rootfs de solo lectura, capacidades de tiempo de ejecución eliminadas y sin nuevos privilegios, con relajaciones que se mantienen explícitas. Graft no añade ninguna política de inicio automático o reinicio predeterminada, y no configura silenciosamente Podman, soporte de superposición rootless, permanencia de usuario de systemd, cuentas, reglas de cortafuegos o política de DNS. Los contenedores comparten el kernel del host y no se presentan como un límite de seguridad equivalente a una máquina virtual. El backend actual expone solo el cierre de tiempo de ejecución de Nix realizado de cada carga de trabajo a través de montajes de almacén de solo lectura obligatorios, sin alternativa de almacén completo.
El README posiciona a Graft para pequeños servicios nativos de Nix y cargas de trabajo de desarrollo que se benefician de un TOML revisable y la propiedad de systemd. Enumera alternativas para diferentes necesidades: Quadlet directo para cobertura completa de opciones upstream, herramientas de Compose para flujos de trabajo OCI/Compose, o un límite de VM cuando las cargas de trabajo no deben compartir el kernel del host. Se enlazan guías de inicio rápido, hoja de ruta, visión, política de seguridad, guía de contribución y comprobaciones de desarrollo, y el proyecto tiene licencia Apache-2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.