Обновить extentions/README.md

This commit is contained in:
Алексей Костарев 2024-11-18 09:08:22 +03:00
parent a0f8fd2225
commit e2073d784e

View File

@ -333,6 +333,127 @@ ghcr.io/siderolabs/nonfree-kmod-nvidia-production:550.90.07-v1.8.2@sha256:86abd0
* util-linux(util-linux-tools)
- копирование tar-файла исходного кода с www.kernel.org с компиляций кода (configure, make)
## Предложения по разворачиванию расширений (extentions) в ALTLinux
В ALTlinux предлагается разворачивать ВСЕ расшипения из RPM-пакетов путем установки их в базовый образ `registry.altlinux.org/base/base` с последующим копированием бинарных файлов и файлов конфигурации в соответствующий каталог `/rootfs/` (эту часть можно извлечь из стандартного пакета `pkg.yaml`).
В этом случае корректируется только часть `steps.install` файл `pkg.yaml` talos-"пакета" (с возможным удалением предыдущих шагов).
Все отсальные файлы описания talos-пакета остаются неизменными.
Пример развлоачивания пакета `crun`.
- описание стандартного разворачивания
```
name: crun
variant: scratch
shell: /toolchain/bin/bash
dependencies:
- stage: base
steps:
- sources:
# {{ if eq .ARCH "aarch64" }} This in fact is YAML comment, but Go templating instruction is evaluated by bldr
- url: https://github.com/containers/crun/releases/download/{{ .CRUN_VERSION }}/crun-{{ .CRUN_VERSION }}-linux-arm64-disable-systemd
destination: crun
sha256: 44b06c0ab2cc79e4bc1274e5f51cb3dbdf450c4317795f37e8a0c48a3f1924c0
sha512: 7a4fb10c7576fd1d4fae11331554d2d79e0d72be7a4466ef89046cc4eb364af44158fbae87287a12b4e675e11f708a5dd4eca46d3bf32b4d4dcaf8227f1cc962
# {{ else }} This in fact is YAML comment, but Go templating instruction is evaluated by bldr
- url: https://github.com/containers/crun/releases/download/{{ .CRUN_VERSION }}/crun-{{ .CRUN_VERSION }}-linux-amd64-disable-systemd
destination: crun
sha256: 549e0b55ac278cb4d50bfc03c75da8d7f05f6232a35b15a488e8b4bef7ba6e38
sha512: fa0538c1acd2a1297f170db752fe7872480bd89fdd1a0c20f7ba9b389fc2f639836f71fb14de0d718e9a2651fbf7f3f0c6764b95956765e057ca69609c217848
# {{ end }} This in fact is YAML comment, but Go templating instruction is evaluated by bldr
prepare:
- |
sed -i 's#$VERSION#{{ .VERSION }}#' /pkg/manifest.yaml
install:
- |
mkdir -p /rootfs/usr/local/bin
cp -av crun /rootfs/usr/local/bin/crun
chmod +x /rootfs/usr/local/bin/crun
- |
mkdir -p /rootfs/etc/cri/conf.d
cp /pkg/crun.part /rootfs/etc/cri/conf.d/crun.part
test:
- |
mkdir -p /extensions-validator-rootfs
cp -r /rootfs/ /extensions-validator-rootfs/rootfs
cp /pkg/manifest.yaml /extensions-validator-rootfs/manifest.yaml
/extensions-validator validate --rootfs=/extensions-validator-rootfs --pkg-name="${PKG_NAME}"
finalize:
- from: /rootfs
to: /rootfs
- from: /pkg/manifest.yaml
to: /
```
- описание разворачивания в `ALTLinux`:
```
name: crun
variant: scratch
shell: /toolchain/bin/bash
dependencies:
- stage: base
- image: "registry.altlinux.org/alt/alt"
steps:
- prepare:
- |
sed -i 's#$VERSION#{{ .VERSION }}#' /pkg/manifest.yaml
install:
- |
apt-get update
apt-get install -y crun
- |
mkdir -p /rootfs/usr/local/bin
cp -av /usr/bin/crun /rootfs/usr/local/bin/crun
chmod +x /rootfs/usr/local/bin/crun
- |
mkdir -p /rootfs/etc/cri/conf.d
cp /pkg/crun.part /rootfs/etc/cri/conf.d/crun.part
finalize:
- from: /rootfs
to: /rootfs
- from: /pkg/manifest.yaml
to: /
```
В данном случае из стандартного описания
- удаляется шаг `steps.sources`;
- в шаг `install` добавляется обновление репозитория и установка пакета `crun`;
- во шаге копирования бинарного кода меняется тропа исходного бинарного файла.
В итоге оба вариант сборки цели `local-crun` получают аналогичные деревья файловой системы:
```
_out/
└── build
├── linux_amd64
│   ├── manifest.yaml
│   └── rootfs
│   ├── etc
│   │   └── cri
│   │   └── conf.d
│   │   └── crun.part
│   └── usr
│   └── local
│   └── bin
│   └── crun
└── linux_arm64
├── manifest.yaml
└── rootfs
├── etc
│   └── cri
│   └── conf.d
│   └── crun.part
└── usr
└── local
└── bin
└── crun
```
## Ссылки
- [Talos Linux System Extensions](https://github.com/siderolabs/extensions#installing-extensions)