Sobre o projeto
Graft é um projeto em alfa inicial para declarar pequenas cargas de trabalho de contêiner em TOML tipado e fazer com que Nix, Podman Quadlet e systemd as realizem. O fluxo documentado é: intenção em TOML -> JSON resolvido validado -> rootfs construído pelo Nix -> arquivo .container do Quadlet -> serviço systemd -> contêiner Podman. Ele visa evitar um Dockerfile, instalação de pacotes em tempo de execução e arquivos Quadlet escritos à mão, validando conceitos de carga de trabalho suportados em vez de aceitar fragmentos arbitrários de Podman, Quadlet, systemd ou Nix.
O repositório descreve um backend rootfs-store para dois escopos: contêineres de sistema/rootful do NixOS e contêineres do gerenciador de usuário do Home Manager. Os recursos suportados relatados incluem pacotes, comandos argv, identidade, diretório de trabalho, ambiente, serviços de longa duração, jobs finitos, jobs de setup, inicialização explícita, dependências de carga de trabalho tipadas, rede de contêiner selecionada, binds somente leitura por padrão, volumes gerenciados, montagens tmpfs limitadas, referências de recursos CDI qualificadas, controles de hardening tipados, validação de esquema gerada e rejeição fail-closed de campos reservados. A documentação separa o TOML aceito em uma referência de configuração de um status autoritativo de capacidade que cobre comportamento atual, planejado, adiado e proibido.
Os padrões de segurança incluem rootfs somente leitura, capacidades de runtime removidas e no-new-privileges, com relaxamentos mantidos explícitos. Graft não adiciona política padrão de inicialização automática ou reinício, e não configura silenciosamente Podman, suporte a overlay rootless, linger de usuário do systemd, contas, regras de firewall ou política de DNS. Contêineres compartilham o kernel do host e não são apresentados como uma fronteira de segurança equivalente a VM. O backend atual expõe apenas o closure de runtime Nix realizado de cada carga de trabalho por meio de montagens obrigatórias de store somente leitura, sem fallback de store completo.
O README posiciona Graft para pequenos serviços nativos do Nix e cargas de trabalho de desenvolvimento que se beneficiam de TOML revisável e propriedade do systemd. Ele lista alternativas para necessidades diferentes: Quadlet direto para cobertura completa de opções upstream, ferramentas Compose para fluxos de trabalho OCI/Compose, ou uma fronteira de VM quando as cargas de trabalho não devem compartilhar o kernel do host. Guias de início rápido, roadmap, visão, política de segurança, guia de contribuição e verificações de desenvolvimento estão vinculados, e o projeto tem licença Apache-2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.