Skip to content
Draft

Init pm #2088

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
8eed376
feat(core): switch libvirt and QEMU builds to Flant package manager
ArtemFedorov-Flant Jun 11, 2026
20a4ed5
refactor(core): update edk2 qemu import path to /out
ArtemFedorov-Flant Jun 11, 2026
3004ef8
change namespace name
universal-itengineer Jun 11, 2026
231563c
upd parse-base-images-map.tmpl
universal-itengineer Jun 11, 2026
ddd0e13
add create cluster on change pr
universal-itengineer Jun 15, 2026
854b0db
add alt-registry.yml and update overrides
universal-itengineer Jun 15, 2026
4bd034f
fix ci
universal-itengineer Jun 15, 2026
ec722c2
use pr 2008 for virt
universal-itengineer Jun 15, 2026
327a758
fix(core): update cdi-importer and dvcr-artifact qemu import path fro…
ArtemFedorov-Flant Jun 17, 2026
2c7a5fa
(update): add new tag for pm
ArtemFedorov-Flant Jun 25, 2026
867ebf7
Merge branch 'main' into feat/pm
ArtemFedorov-Flant Jun 25, 2026
254dab8
fix e2e ci and use prod proile for bootstrap cluster
universal-itengineer Jun 25, 2026
9ccdbcb
update: switch to new release 1.1.13
ArtemFedorov-Flant Jun 29, 2026
c37a2e2
Merge branch 'main' into feat/pm
ArtemFedorov-Flant Jun 29, 2026
4b2b383
fix: change installation paths for qemu binaries & libs
ArtemFedorov-Flant Jun 30, 2026
ba875cb
Merge branch 'main' into feat/pm
ArtemFedorov-Flant Jun 30, 2026
c0d6f59
fix(core): copy qemu modules/firmware directly instead of relocating
ArtemFedorov-Flant Jun 30, 2026
809597b
fix(core): drop qemu binaries from setup-stage relocate list
ArtemFedorov-Flant Jun 30, 2026
961d21a
fix(cdi,dvcr,edk2): place qemu-img binaries under /qemu-img/usr/bin
ArtemFedorov-Flant Jun 30, 2026
c7cf797
revert(core): restore old qemu /qemu-img import flow
ArtemFedorov-Flant Jun 30, 2026
25ff237
fix(core): drop -1 from qemu, add ncurses, rsync merge in edk2
ArtemFedorov-Flant Jun 30, 2026
44afe31
fix(edk2): use rsync for all packages including qemu
ArtemFedorov-Flant Jun 30, 2026
b7fa82c
fix(edk2): add --force to rsync to resolve terminfo dir/symlink clash
ArtemFedorov-Flant Jun 30, 2026
818afc0
fix(edk2): remove unused qemu import
ArtemFedorov-Flant Jun 30, 2026
b1af1b7
fix(cdi,dvcr): merge qemu via rsync to handle lib64 symlink and terminfo
ArtemFedorov-Flant Jun 30, 2026
be0ec4f
fix(cdi,dvcr): import rsync base image and merge qemu with it
ArtemFedorov-Flant Jun 30, 2026
e9028d8
fix(cdi,dvcr): merge qemu via tar (rsync base image unavailable in di…
ArtemFedorov-Flant Jun 30, 2026
aec6e12
fix(cdi,dvcr): add --overwrite to tar for terminfo file conflict
ArtemFedorov-Flant Jun 30, 2026
008080e
fix(cdi,dvcr): add rsync pm image and use it to merge qemu
ArtemFedorov-Flant Jun 30, 2026
726e533
refactor(dvcr): rebuild bins on distroless with pm packages
ArtemFedorov-Flant Jul 1, 2026
8a153d9
feat(core): bump container-factory to v1.1.14, cdi on distroless+pm w…
ArtemFedorov-Flant Jul 1, 2026
f5f77cf
fix(edk2): revert to libisoburn/libcurl local packages (xorriso not a…
ArtemFedorov-Flant Jul 1, 2026
53363b3
feat(virt-launcher): migrate to distroless + pm install
ArtemFedorov-Flant Jul 3, 2026
c1767f1
Merge branch 'main' into feat/pm
ArtemFedorov-Flant Jul 3, 2026
1e4c4c6
fix(virt-launcher): split libvirt/qemu imports to avoid werf conflict
ArtemFedorov-Flant Jul 3, 2026
0109fe2
fix(virt-launcher): install build deps via pm for consistent glibc ABI
ArtemFedorov-Flant Jul 3, 2026
7cb3a82
fix(virt-launcher): install pkgconf for cgo builds
ArtemFedorov-Flant Jul 3, 2026
f1aa9bb
fix(virt-launcher): add openssl for libssh cgo linkage
ArtemFedorov-Flant Jul 3, 2026
7af896d
fix(virt-launcher): drop unneeded -devel packages
ArtemFedorov-Flant Jul 3, 2026
6e1678b
fix(virt-artifact): install git for kubevirt patch step
ArtemFedorov-Flant Jul 3, 2026
7af782d
fix(virt-launcher): run setcap via interpreter from /relocate
ArtemFedorov-Flant Jul 3, 2026
40c62d7
fix(virt-handler): migrate to distroless + pm install
ArtemFedorov-Flant Jul 3, 2026
1dc9c1f
fix(virt-launcher,virt-handler): rebuild ld.so.cache for split libdirs
ArtemFedorov-Flant Jul 3, 2026
c2d3b81
fix(dvcr-importer): add libnbd to runtime deps + rebuild ld.so.cache
ArtemFedorov-Flant Jul 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/e2e-nightly-reusable-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ jobs:
run: |
GIT_SHORT_HASH=$(git rev-parse --short HEAD)

namespace="nightly-e2e-$STORAGE_TYPE-$GIT_SHORT_HASH-$RANDUUID4C"
namespace="pr2088-e2e-$STORAGE_TYPE-$GIT_SHORT_HASH-$RANDUUID4C"

echo "namespace=$namespace" >> "$GITHUB_OUTPUT"
echo "sha_short=$GIT_SHORT_HASH" >> "$GITHUB_OUTPUT"
Expand Down
20 changes: 15 additions & 5 deletions .github/workflows/e2e-nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@
name: E2E Nightly

on:
pull_request:
types: [opened, reopened, synchronize, labeled, unlabeled]
branches:
- main
- feat/pm
workflow_dispatch:

env:
Expand All @@ -30,6 +35,7 @@ defaults:

jobs:
cleanup-nested-clusters:
if: github.event_name != 'pull_request'
name: Cleanup nested clusters
runs-on: ubuntu-latest
steps:
Expand All @@ -51,6 +57,7 @@ jobs:
run: bash .github/scripts/bash/e2e/cleanup-nightly-resources.sh

power-off-vms-for-nested:
if: github.event_name != 'pull_request'
name: Power off VMs for nested clusters
needs: cleanup-nested-clusters
runs-on: ubuntu-latest
Expand All @@ -70,7 +77,7 @@ jobs:

set-vars:
name: Set vars
needs: power-off-vms-for-nested
# needs: power-off-vms-for-nested
runs-on: ubuntu-latest
outputs:
date_start: ${{ steps.vars.outputs.date_start }}
Expand Down Expand Up @@ -105,14 +112,15 @@ jobs:
nested_storageclass_name: nested-thin-r1
nested_cluster_network_name: cn-4006-for-e2e-test
branch: main
virtualization_tag: main
virtualization_tag: pr2088
deckhouse_channel: ${{ needs.set-vars.outputs.deckhouse_channel }}
deckhouse_version: ${{ needs.set-vars.outputs.deckhouse_version }}
registry_profile: ${{ needs.set-vars.outputs.registry_profile }}
default_user: cloud
go_version: "1.25.11"
e2e_timeout: "3.5h"
e2e_image_base_url: ${{ needs.set-vars.outputs.e2e_image_base_url }}
e2e_focus_tests: "VirtualMachineConfiguration"
date_start: ${{ needs.set-vars.outputs.date_start }}
randuuid4c: ${{ needs.set-vars.outputs.randuuid4c }}
cluster_config_workers_memory: "9Gi"
Expand All @@ -128,6 +136,7 @@ jobs:
E2E_ARTIFACTS_GPG_PASSPHRASE: ${{ secrets.E2E_ARTIFACTS_GPG_PASSPHRASE }}

e2e-nfs:
if: github.event_name != 'pull_request'
name: E2E Pipeline (NFS)
needs:
- set-vars
Expand Down Expand Up @@ -161,12 +170,13 @@ jobs:
E2E_ARTIFACTS_GPG_PASSPHRASE: ${{ secrets.E2E_ARTIFACTS_GPG_PASSPHRASE }}

report-to-channel:
if: github.event_name != 'pull_request'
runs-on: ubuntu-latest
name: End-to-End tests report
needs:
- e2e-replicated
- e2e-nfs
if: ${{ always()}}
# - e2e-nfs
# if: ${{ always()}}
steps:
- uses: actions/checkout@v6

Expand Down Expand Up @@ -202,7 +212,7 @@ jobs:
env:
EXPECTED_STORAGE_TYPES: '["replicated","nfs"]'
LOOP_API_BASE_URL: ${{ secrets.LOOP_API_BASE_URL }}
LOOP_CHANNEL_ID: ${{ secrets.LOOP_CHANNEL_ID }}
LOOP_CHANNEL_ID: ${{ secrets.LOOP_TEST_CHANNEL_ID }}
LOOP_TOKEN: ${{ secrets.LOOP_TOKEN }}
with:
script: |
Expand Down
1 change: 1 addition & 0 deletions build/base-images/base-images-pins.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@ fromContainerFactory:
# CVE mitigation (08-06-2026): requires the ALT 20260119 based toolchain
# provided by container-factory instead of the deckhouse_images build.
- builder/golang-alt-1.25
- builder/distroless
- builder/golang-debian-1.25
1,757 changes: 895 additions & 862 deletions build/base-images/container_factory_images.yml

Large diffs are not rendered by default.

49 changes: 10 additions & 39 deletions images/cdi-importer/werf.inc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,67 +16,38 @@ imageSpec:

---
{{- define "cdi-importer-deps" -}}
binaries:
# nbd bins and libs
- /usr/sbin/nbdkit
- /usr/lib64/nbdkit/filters/*.so
- /usr/lib64/nbdkit/plugins/*.so
# CDI binaries
- /usr/bin/cdi-image-size-detection /usr/bin/cdi-importer /usr/bin/cdi-source-update-poller
# QEMU bins
- /usr/bin/qemu-img
# do not include glibc, it will be replaced by one from qemu-img
packages:
- nbdkit libnbd
- libtasn1 libxml2
- xz
- libunistring
- libffi libgmp gnutls
- libffi gmp gnutls
- nettle libidn2
- p11-kit zlib
- glib2 libbsd libfuse3
- gcc ubdsrv liburing
- glib2 libfuse
- liburing
- libaio libaudit libcap-ng numactl
- linux-pam zstd
- zstd libnbd
- nbdkit libbsd linux-pam
{{- end -}}

{{ $cdiImporterDependencies := include "cdi-importer-deps" . | fromYaml }}

image: {{ .ModuleNamePrefix }}{{ .ImageName }}-bins
final: false
fromImage: {{ .ModuleNamePrefix }}base-alt-p11-binaries
fromImage: builder/distroless
import:
- image: tools/util-linux
add: /
to: /relocate/usr
after: setup
includePaths:
- sbin/blockdev
- bin/mount
- bin/umount
- image: {{ .ModuleNamePrefix }}cdi-artifact
add: /cdi-binaries
to: /usr/bin
before: setup
to: /relocate/usr/bin
before: install
includePaths:
- cdi-image-size-detection
- cdi-importer
- cdi-source-update-poller
- image: {{ .ModuleNamePrefix }}qemu
add: /qemu-img
to: /qemu-img
to: /relocate
before: install
{{- include "importPackageImages" (list . $cdiImporterDependencies.packages "install") -}}
shell:
install:
- |
echo "Install packages"
PKGS="{{ $cdiImporterDependencies.packages | join " " }}"
PKGS+=" qemu-img"
for pkg in $PKGS; do
cp -a /$pkg/. /
rm -rf /$pkg
done
setup:
- |
/relocate_binaries.sh -i "{{ $cdiImporterDependencies.binaries | join " " }}" -o /relocate
- pm install {{ $cdiImporterDependencies.packages | join " " }} -d /relocate
53 changes: 12 additions & 41 deletions images/dvcr-artifact/werf.inc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -67,61 +67,32 @@ shell:
---
{{- $name := print .ImageName "-dependencies" -}}
{{- define "$name" -}}
binaries:
- /usr/local/bin/dvcr-importer
- /usr/sbin/nbd*
- /usr/lib64/nbdkit/filters/*.so
- /usr/lib64/nbdkit/plugins/*.so
- /usr/bin/file
- /usr/share/misc/magic.mgc
- /usr/local/bin/dvcr-uploader
- /usr/local/bin/dvcr-cleaner
- /usr/bin/qemu-img
- /usr/bin/qemu-nbd
- /usr/lib64/libnbd.s*
packages:
- bzip2 file nbdkit libnbd xz libxml2
- bzip2 file xz libxml2
- libseccomp zlib zstd
- libffi libgmp gnutls nettle libidn2
- p11-kit libtasn1 libfuse3
- gcc ubdsrv liburing
- libaio libaudit libcap-ng numactl
- linux-pam libunistring glib2
- libffi gmp gnutls nettle libidn2
- p11-kit libtasn1 libfuse
- liburing libaio libaudit libcap-ng numactl
- libunistring glib2 libnbd gnu-glibc
{{- end -}}

{{ $builderDependencies := include "$name" . | fromYaml }}

image: {{ .ModuleNamePrefix }}{{ .ImageName }}-bins
final: false
fromImage: {{ .ModuleNamePrefix }}base-alt-p11-binaries
fromImage: builder/distroless
import:
- image: tools/util-linux
add: /
to: /relocate/usr
after: setup
includePaths:
- bin/mount
- bin/umount
- image: {{ .ModuleNamePrefix }}{{ .ImageName }}-builder
add: /out
to: /usr/local/bin
before: setup
{{- include "importPackageImages" (list . $builderDependencies.packages "install") -}}
to: /relocate/usr/local/bin
before: install
- image: {{ .ModuleNamePrefix }}qemu
add: /qemu-img
to: /qemu-img
to: /relocate
before: install
shell:
install:
- |
# Install packages
PKGS="{{ $builderDependencies.packages | join " " }}"
PKGS+=" qemu-img"
for pkg in $PKGS; do
cp -a /$pkg/. /
rm -rf /$pkg
done

setup:
- |
/relocate_binaries.sh -i "{{ $builderDependencies.binaries | join " " }}" -o /relocate
pm install {{ $builderDependencies.packages | join " " }} -d /relocate
echo "Rebuild ld.so.cache so binaries without RUNPATH (e.g. dvcr-importer -> libnbd) find libs in both /usr/lib and /usr/lib64"
/relocate/lib64/ld-linux-x86-64.so.2 --library-path /relocate/lib64:/relocate/usr/lib:/relocate/usr/lib64 /relocate/sbin/ldconfig -r /relocate
5 changes: 0 additions & 5 deletions images/edk2/werf.inc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -121,10 +121,6 @@ import:
- Logo.bmp
- build.sh
{{- include "importPackageImages" (list . $builderDependencies.packages "install") -}}
- image: {{ .ModuleNamePrefix }}qemu
add: /qemu-img
to: /qemu-img
before: install
shell:
beforeInstall:
{{- include "alt packages proxy" . | nindent 2 }}
Expand All @@ -138,7 +134,6 @@ shell:
- |
# Install packages
PKGS="{{ $builderDependencies.packages | join " " }}"
PKGS+=" qemu-img"
for pkg in $PKGS; do
cp -a /$pkg/. /
rm -rf /$pkg
Expand Down
Loading
Loading