Init pm#2088
Open
AntonFomichev-Flant wants to merge 13 commits into
Open
Conversation
1e15bda to
854cedb
Compare
a7f446f to
3ca5591
Compare
8f84fca to
ced3603
Compare
8b0cfb8 to
606dcd4
Compare
662ba47 to
4cf2701
Compare
053e272 to
6d4953a
Compare
…tall Signed-off-by: Artem Fedorov <artem.fedorov@flant.com>
Signed-off-by: Artem Fedorov <artem.fedorov@flant.com>
Signed-off-by: Artem Fedorov <artem.fedorov@flant.com>
Signed-off-by: Artem Fedorov <artem.fedorov@flant.com>
…helper Signed-off-by: Artem Fedorov <artem.fedorov@flant.com>
…-artifact BPF deps Signed-off-by: Artem Fedorov <artem.fedorov@flant.com>
1bc3937 to
ab54e05
Compare
Signed-off-by: Artem Fedorov <artem.fedorov@flant.com>
Signed-off-by: Artem Fedorov <artem.fedorov@flant.com>
…golang-1.25 Signed-off-by: Artem Fedorov <artem.fedorov@flant.com>
…arrives in base-images Signed-off-by: Artem Fedorov <artem.fedorov@flant.com>
…pf_bridge.o compilation Signed-off-by: Artem Fedorov <artem.fedorov@flant.com>
…golang-1.25 Signed-off-by: Artem Fedorov <artem.fedorov@flant.com>
Signed-off-by: Artem Fedorov <artem.fedorov@flant.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Migrate DVP runtime images to
base/distroless+ Flant package manager (pm)Why do we need it, and what problem does it solve?
Previously, every runtime dependency was compiled from source inside dedicated
images/packages/*build recipes — a slow, fragile approach that required maintaining custom werf stages for each library. Any version bump meant touching multiple places across the repository.The Flant package manager (pm) solves this by treating dependencies as OCI artifacts:
pm installresolves the full dependency graph, verifies content digests, and places binaries and libraries in a single deterministic operation. No more hand-crafted build stages per library, no more ABI surprises between build and runtime.Migrated
The following packages — previously built from source as individual
images/packages/*werf stages — are now delivered viapm install:acl,bzip2,cyrus-sasl2,dmidecode,dtc,e2fsprogs,file,gcc,glib2glibc,gnutls,keyutils,krb5,libaio,libattr,libaudit,libbrotli,libbsdlibburn,libcap,libcap-ng,libcapstone,libcurl,libffi,libfuse2,libfuse3,libgcryptlibgmp,libgpg-error,libgsasl,libidn,libidn2,libisoburn,libisofs,libjansson4,libjson-c5libjson-glib,libmd,libmnl,libnbd,libnftnl,libnl3,libntlm,libpixman,libpnglibpsl,libqpl,libseccomp,libslirp,libssh,libssh2,libtasn1,libtirpc,libtpmslibunistring,liburing,libuserspace-rcu,libvirt,libxcrypt,libxkbcommon,libxml2,linux-pam,lvm2lz4,lzo,multipath-tools,nbdkit,ncurses,nettle,nftables,nghttp2,nghttp3ngtcp2,numactl,openldap,openssl,p11-kit,pcre2,rdma-core,readline,selinuxsnappy,swtpm,systemd,ubdsrv,util-linux,xz,zlib,zstdSwitching to
base/distrolessas the final base image aligns the runtime environment with the build environment, eliminating the class of issues where a binary compiled on ALT would behave differently at runtime.What is the expected result?
The following final-stage images are now based on
base/distrolesswith runtime dependencies managed viapm install:virt-launchervirt-handlerdvcrdvcr-importerdvcr-uploaderpvc-importerAdditionally, the build stages for
virt-artifactandpvc-artifacthave been migrated frombuilder/golang-alt-1.25tobuilder/golang-1.25, aligning the glibc version across build and runtime environments.Image sizes reduced by ~91 MB per image (e.g. virt-launcher: 279 MB → 187 MB).
images/packages/legacy build recipes and version pins inbase-images-pins.ymlare transitional — see TODO below.TODO (follow-up)
images/packages/migration — legacy per-library build recipes are still present and should be removed once pm fully covers all runtime dependencies.Builder stages migration — the following build-stage images still use
builder/golang-alt-1.25and are candidates for migration:dvcr-artifact— uses CGO, needsbuilder/golang-1.25(gcc + go + pm)bounder,hooks,kube-api-rewriter,pre-delete-hook,virtualization-artifact,virtualization-dra,vm-route-forge— pure Go, no CGO; should be migrated tobuilder/golang-1.25edk2remains on ALT intentionally — requires a full native toolchain (clang with BPF target, acpica, nasm) not yet available in container-factoryRemove version pins —
base-images-pins.ymlcurrently pinsbase/distrolessandbuilder/distrolessto specific container-factory digests. In the ideal world there should be no manual pins: the module should track container-factory releases automatically. The pins are a transitional measure.Go 1.26 upgrade —
builder/golang-1.26is already available in container-factory. Once build stages are fully migrated off ALT, upgrading to 1.26 is a straightforward one-line change per image.Checklist
Changelog entries