From f21ca373d58535a0dc831a09f024b394a640b239 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9=20=D0=9A=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D1=80=D0=B5=D0=B2?= Date: Mon, 18 Nov 2024 09:45:17 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20extentions/README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- extentions/README.md | 83 ++++++++++++++++++++++++++++++-------------- 1 file changed, 56 insertions(+), 27 deletions(-) diff --git a/extentions/README.md b/extentions/README.md index 133db9f..f873423 100644 --- a/extentions/README.md +++ b/extentions/README.md @@ -98,7 +98,7 @@ ghcr.io/siderolabs/nonfree-kmod-nvidia-production:550.90.07-v1.8.2@sha256:86abd0 ## Список расширений по группам с методами разворачивания -Описание получения исполнямого кода и файлов конфигурации (в минимальном варианте) находится в файлах pkg.yaml. +Описание получения исполняемого кода и файлов конфигурации (в минимальном варианте) находится в файлах pkg.yaml. Дерево `pkg.yaml` файлов:
 ├── container-runtime
@@ -220,6 +220,24 @@ ghcr.io/siderolabs/nonfree-kmod-nvidia-production:550.90.07-v1.8.2@sha256:86abd0
     └── util-linux
 
+### Структура каталогов расширения + +Каждый каталог расширения содержит следующие обязательные файлы: + +- `manifest.yaml` - манифест помещающийся в первый слой итогового образа; +- `vars.yaml` - определение переменных, используемых при разворачивании; +- `pkg.yaml` - описание процесса генерации дерева образа, помещаемого вторым слоем итогового образа; + +Кроме этого в этот каталог могут помещаться дополнительные файлы: + +- `README.md` - описание; +- дополнителньые файлы конфигурации, обычно имеющие суффикс '.part'; +- дополнителньые файлы конфигурации форматов `yaml`, `toml`, ...; +- исходный код, используемый при сборка (шаг `build`) расширения; +- бинарный и исполняемый код расширения (шаг `install`); +- ... + +### Мeтоды разворачивания расширения - container-runtime * crun @@ -241,21 +259,21 @@ ghcr.io/siderolabs/nonfree-kmod-nvidia-production:550.90.07-v1.8.2@sha256:86abd0 * wasmedge - копирование tar-файла бинарного кода с github.com * chelsio(chelsio-drivers_ - - копирование `/lib/modules/` из образа ядра? + - копирование `/lib/modules/` из образа ядра * gasket(gasket-driver) - - копирование `/lib/modules/` из образа? + - копирование `/lib/modules/` из образа * mei - - копирование `/lib/modules/` из образа? + - копирование `/lib/modules/` из образа * mellanox-ofed - - копирование `/lib/modules/` из образа? + - копирование `/lib/modules/` из образа * thunderbolt - - копирование `/lib/modules/` из образа? + - копирование `/lib/modules/` из образа * uinput - - копирование `/lib/modules/` из образа? + - копирование `/lib/modules/` из образа * usb-modem(usb-modem-drivers) - - копирование `/lib/modules/` из образа? + - копирование `/lib/modules/` из образа * v4l-uvc(v4l-uvc-drivers) - - копирование `/lib/modules/` из образа? + - копирование `/lib/modules/` из образа - examples * hello-world-service @@ -263,25 +281,25 @@ ghcr.io/siderolabs/nonfree-kmod-nvidia-production:550.90.07-v1.8.2@sha256:86abd0 - firmware * amdgpu-firmware - - копирование `/lib/firmware/` из образа? + - копирование `/lib/firmware/` из образа * amdgpu-firmware - - копирование `/lib/firmware/` из образа? + - копирование `/lib/firmware/` из образа * amd-ucode - - копирование `/lib/firmware/` из образа? + - копирование `/lib/firmware/` из образа * bnx2-bnx2x - - копирование `/lib/firmware/` из образа? + - копирование `/lib/firmware/` из образа * chelsio(chelsio-firmware) - - копирование `/lib/firmware/` из образа? + - копирование `/lib/firmware/` из образа * i915-ucode - - копирование `/lib/firmware/` из образа? + - копирование `/lib/firmware/` из образа * intel-ice-firmware - - копирование `/lib/firmware/` из образа? + - копирование `/lib/firmware/` из образа * intel-ucode - копирование tar-файла бинарного кода с github.com * qlogic-firmware - - копирование `/lib/firmware/` из образа? + - копирование `/lib/firmware/` из образа * realtek-firmware - - копирование `/lib/firmware/` из образа? + - копирование `/lib/firmware/` из образа - guest-agents * metal-agent @@ -317,9 +335,9 @@ ghcr.io/siderolabs/nonfree-kmod-nvidia-production:550.90.07-v1.8.2@sha256:86abd0 - storage * btrfs - - копирование `/lib/modules/` из образа? + - копирование `/lib/modules/` из образа * drbd - - копирование `/lib/modules/` из образа? + - копирование `/lib/modules/` из образа * fuse3 - копирование tar-файла исходного кода с github.com , установка python-модуля, сборка ninja * iscsi-tools @@ -327,7 +345,7 @@ ghcr.io/siderolabs/nonfree-kmod-nvidia-production:550.90.07-v1.8.2@sha256:86abd0 * mdadm - копирование tar-файла исходного кода с www.kernel.org с компиляций кода (make) * zfs - - копирование `/lib/modules/` из образа? + - копирование `/lib/modules/` из образа - tools * util-linux(util-linux-tools) @@ -335,11 +353,21 @@ ghcr.io/siderolabs/nonfree-kmod-nvidia-production:550.90.07-v1.8.2@sha256:86abd0 ## Предложения по разворачиванию расширений (extentions) в ALTLinux -В ALTlinux предлагается разворачивать ВСЕ расшипения из RPM-пакетов путем установки их в базовый образ `registry.altlinux.org/base/base` с последующим копированием бинарных файлов и файлов конфигурации в соответствующий каталог `/rootfs/` (эту часть можно извлечь из стандартного пакета `pkg.yaml`). -В этом случае корректируется только часть `steps.install` файл `pkg.yaml` talos-"пакета" (с возможным удалением предыдущих шагов). -Все отсальные файлы описания talos-пакета остаются неизменными. +Как видно из вышеприведенного списка в `talos` расширения устанавливаются многочисленными способами из многочисленных источников: -Пример развлоачивания пакета `crun`. +- копирование бинарного (исполняемого) кода с github.com, ... в исходном виде или в виде tar-архивов с последующим разворачиванием; +- копирование tar-файла исходного кода с github.com, www.kernel.org, src.fedoraproject.org с конфигурацией и компиляций кода; +- копирование бинарного кода (исполняемого) из каталогов docker-образов; +- ... + +В ALTlinux предлагается разворачивать ВСЕ расширения из RPM-пакетов путем установки их в базовый образ `registry.altlinux.org/base/base` с последующим копированием бинарных файлов и файлов конфигурации в соответствующий каталог `/rootfs/` (эту часть можно извлечь из стандартного пакета `pkg.yaml`). +В этом случае корректируется только часть `steps.install` файл `pkg.yaml` talos-"пакета" (с возможным удалением предыдущих шагов). +Все остальные файлы описания talos-пакета остаются неизменными. + +В определенных случаях при наличи готовых образов возможно копирование бинарного кода (исполняемого) из каталогов docker-образов +регистраторов `registry.altlinux.org`, `gitea.basealt.ru`. + +Пример разворачивания пакета `crun`. - описание стандартного разворачивания ``` @@ -394,7 +422,7 @@ variant: scratch shell: /toolchain/bin/bash dependencies: - stage: base - - image: "registry.altlinux.org/alt/alt" + - image: registry.altlinux.org/alt/alt steps: - prepare: - | @@ -420,7 +448,8 @@ finalize: to: / ``` -В данном случае из стандартного описания +В данном случае из стандартного описания +- в элемент 'dependencies' добавляется зависимость от образа `registry.altlinux.org/alt/alt` - удаляется шаг `steps.sources`; - в шаг `install` добавляется обновление репозитория и установка пакета `crun`; - во шаге копирования бинарного кода меняется тропа исходного бинарного файла.