Об этом проекте
Graft — проект на ранней стадии альфы, предназначенный для объявления небольших контейнерных нагрузок в типизированном TOML с их последующей реализацией средствами Nix, Podman Quadlet и systemd. Документированный поток выглядит так: намерение в TOML -> валидированный разрешенный JSON -> rootfs, собранный Nix -> файл .container Quadlet -> служба systemd -> контейнер Podman. Цель состоит в том, чтобы избежать использования Dockerfile, установки пакетов во время выполнения и написания файлов Quadlet вручную, валидируя поддерживаемые концепции нагрузки вместо принятия произвольных фрагментов Podman, Quadlet, systemd или Nix.
В репозитории описывается бэкенд хранилища rootfs для двух областей: системных контейнеров с правами root в NixOS и пользовательских контейнеров через Home Manager. Сообщается о поддержке следующих функций: пакеты, команды argv, идентичность, рабочая директория, окружение, долгоживущие службы, конечные задачи, задачи настройки, явный запуск, типизированные зависимости нагрузки, выбранное сетевое взаимодействие контейнеров, монтирования только для чтения по умолчанию, управляемые тома, ограниченные монтирования tmpfs, квалифицированные ссылки на ресурсы CDI, типизированные элементы усиления безопасности, генерируемая валидация схемы и отказ с закрытием по умолчанию для зарезервированных полей. Документация разделяет принимаемый TOML в справочнике конфигурации и авторитетный статус возможностей, охватывающий текущее, планируемое, отложенное и запрещенное поведение.
Настройки безопасности по умолчанию включают rootfs только для чтения, сброшенные возможности во время выполнения и отсутствие повышения привилегий, при этом ослабления сохраняются явными. Graft не добавляет автозапуск или политику перезапуска по умолчанию и не настраивает молча Podman, поддержку rootless overlay, systemd user linger, учетные записи, правила межсетевого экрана или политику DNS. Контейнеры используют общее ядро хоста и не представлены как граница безопасности, эквивалентная виртуальной машине. Текущий бэкенд предоставляет только реализованное замыкание времени выполнения Nix для каждой нагрузки через обязательные монтирования хранилища только для чтения, без резервного варианта полного хранилища.
В README позиционируется Graft для небольших Nix-нативных служб и рабочих нагрузок разработки, выигрывающих от проверяемого TOML и владения systemd. Перечислены альтернативы для других потребностей: прямой Quadlet для полного покрытия опций upstream, инструменты Compose для рабочих процессов OCI/Compose или граница виртуальной машины, когда нагрузкам нельзя разделять ядро хоста. Ссылки на быстрые старты, дорожную карту, видение, политику безопасности, руководство по внесению вклада и проверки разработки включены, а проект лицензирован под Apache-2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.