Немного формальностей
Для начала определиться с СI/CD и GitOps результат у них одинаковый, а подход разный - CD -push, GitOps - pull
Что касается docker и разворачивания, то я надавно перешел на Komodo и даже тут создал тему соответствующую, рекомендую к ознакомлению.
В целом,
Komodo с успехом реализует, но он как и dockge, как и arcane да и portainer использует в качестве основы стеки, это docker-compose файлы, описывающие приложения, но помимо стеков имеет еще возможности по сборке, деплою и работе с git.
Собственно, описанная Вами задача была реализована в сценарии 2 и 3 в выше указанной теме, но редеплой можно либо руками запустить из веб интерфейса или через git actions триггерить событие деплоя
Что же касается TrueNAS Scale, то это оооочень сырая штука и очень глючная, они долгое время использовали k3s под катом, но потом ушли в строну docker-compose или чего-то похожего (ковырялся в конфигах приложений и там такой
, что лучше не смотреть + легаси на легаси и костылями обмазано.
Вообще TrueNas это операционка поверх ZFS и лучше внутрь не лезть, максимум, что можно сделать это через API попытаться работать с этой штукой.
Если хост система на truenas, и хочется IaC, то лучше развернуть LXC или KVM (правда, они тоже недавно обновились и сейчас в бете), поставить туда komodo periphery и разворачивать уже внутри приложения. Но при этом потеряете в гибкости работы с датасетами, которые для приложений truenasа создаются автоматом
Штатные приложения имеют собственные манифесты, режим обновлениям, миграции форматов манифестов и работу с датасетами, я пробовал создавать кастомные приложения со своими образами, работает, но оооочень криво. + приложения версионируются опять же на уровне ZFS (я писал выше, что это операционка на ZFS, а не дебиан)