Skip to content

Init pm#2088

Open
AntonFomichev-Flant wants to merge 17 commits intomainfrom
feat/pm
Open

Init pm#2088
AntonFomichev-Flant wants to merge 17 commits intomainfrom
feat/pm

Conversation

@AntonFomichev-Flant
Copy link
Copy Markdown

@AntonFomichev-Flant AntonFomichev-Flant commented Mar 10, 2026

Description

Flant package manager integration

Why do we need it, and what problem does it solve?

Boost Git workflow
Simplify werf templating

What is the expected result?

In plans:

  • minimized compilation
  • only relevant packages will be compiled
  • remove unnecessary builds

Checklist

  • The code is covered by unit tests.
  • e2e tests passed.
  • Documentation updated according to the changes.
  • Changes were tested in the Kubernetes cluster manually.

Changelog entries

section: ci:low
type: feature
summary: Switch to Flant package manager for building base images, reducing compilation time and simplifying werf templating.

Signed-off-by: Anton Fomichev <anton.fomichev@flant.com>
Signed-off-by: Anton Fomichev <anton.fomichev@flant.com>
@AntonFomichev-Flant AntonFomichev-Flant force-pushed the feat/pm branch 5 times, most recently from f39933b to 1e15bda Compare March 11, 2026 11:50
Signed-off-by: Anton Fomichev <anton.fomichev@flant.com>
Signed-off-by: Nikita Korolev <nikita.korolev@flant.com>
Signed-off-by: Anton Fomichev <anton.fomichev@flant.com>
@AntonFomichev-Flant AntonFomichev-Flant force-pushed the feat/pm branch 3 times, most recently from 8f84fca to ced3603 Compare March 12, 2026 06:08
Signed-off-by: Anton Fomichev <anton.fomichev@flant.com>
@AntonFomichev-Flant AntonFomichev-Flant marked this pull request as ready for review March 13, 2026 09:13
@flant-pinegal flant-pinegal force-pushed the feat/pm branch 3 times, most recently from 8b0cfb8 to 606dcd4 Compare March 26, 2026 08:11
@flant-pinegal flant-pinegal added the e2e/run Run e2e test on cluster of PR author label Mar 26, 2026
@flant-pinegal flant-pinegal self-assigned this Mar 26, 2026
@deckhouse-BOaTswain
Copy link
Copy Markdown
Contributor

deckhouse-BOaTswain commented Mar 26, 2026

Workflow has started.
Follow the progress here: Workflow Run

The target step completed with status: failure.

@deckhouse-BOaTswain deckhouse-BOaTswain removed the e2e/run Run e2e test on cluster of PR author label Mar 26, 2026
- Upgrade QEMU from v9.2.0 to v9.4.0 with separate binaries-only image
- Update base-images with new builder/distroless digests
- Add libcapstone dependency for virt-handler
- Update virt-launcher to use new QEMU binaries image
- Update component versions and e2e matrix configuration

Signed-off-by: Aleksandr Pinegin <aleksandr.pinegin@flant.com>
Signed-off-by: Aleksandr Pinegin <aleksandr.pinegin@flant.com>
…egfault

The cp -a /qemu-img/. / command segfaulted because the full qemu-img
package includes shared libraries (glibc, ld-linux) that overwrite the
ones used by the running cp process. Adding includePaths: [usr] to the
werf import ensures only QEMU binaries, modules, and firmware under
/usr are imported, avoiding root-level library conflicts.

Signed-off-by: Aleksandr Pinegin <aleksandr.pinegin@flant.com>
…manual copy

Import qemu-img contents directly into /relocate after setup instead of
copying them manually during install. This removes the redundant cp/rm
steps for qemu-img and aligns its handling with the relocate_binaries
workflow, preventing the segfault caused by importing non-usr paths.
…inary

Import /qemu-bins instead of /qemu-img from the qemu image to include
all necessary QEMU binaries. Add /usr/bin/qemu-img to the binaries list
and change import phase from "after: setup" to "before: setup" to ensure
binaries are available during the setup phase.

Signed-off-by: Aleksandr Pinegin <aleksandr.pinegin@flant.com>
Update the imported image name from `qemu` to `qemu-bins` to match
the renamed image introduced during the QEMU base image restructuring.

Signed-off-by: Aleksandr Pinegin <aleksandr.pinegin@flant.com>
…g install phase

Rename imported image from qemu-bins to qemu and change its target
directory from /relocate to /qemu. Add explicit copy and cleanup of
/qemu contents during the install phase so that qemu files are merged
into the root filesystem before the relocate_binaries script runs.

Signed-off-by: Aleksandr Pinegin <aleksandr.pinegin@flant.com>
…etup

Move the qemu image import stage from "before: setup" to "before: install"
so that qemu binaries are available during the install shell phase where
they are needed.

Signed-off-by: Aleksandr Pinegin <aleksandr.pinegin@flant.com>
… search path

libvirt installs its libraries to /usr/local/lib64, which may not be in
the default ld search path. Create symlinks from /usr/lib64 pointing to
the actual library locations and run ldconfig to update the linker cache.

Also create corresponding symlinks in /VBINS/usr/lib64 using relative
paths so that the libraries are properly resolved in the final image.

Signed-off-by: Aleksandr Pinegin <aleksandr.pinegin@flant.com>
…ibrary resolution

Replace qemu-bins with qemu-img (full QEMU package including runtime
dependencies like libcapstone) so that relocate_binaries.sh can
discover all shared library dependencies automatically.

- Copy QEMU package after library relocation to ensure pm-built
  libraries take precedence over system libs
- Add symlinks from /usr/lib to /usr/lib64 for packages that install
  to non-standard lib paths
- Remove manual libvirt library symlink creation (no longer needed)
- Remove separate qemu-bins copy step, now handled post-relocation

Signed-off-by: Aleksandr Pinegin <aleksandr.pinegin@flant.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants