Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

export portage db, oem sysext utils, sysext for azure #858

Merged
merged 17 commits into from
Jun 6, 2023

Conversation

krnowak
Copy link
Member

@krnowak krnowak commented May 31, 2023

CI: http://jenkins.infra.kinvolk.io:8080/job/container/job/packages_all_arches/1905/cldsv

Portage database is put into the tarball and uploaded to bincache before it's dropped from the generic image. This is done in order to reinject it into the mounted generic image when building sysext images, so we have retained all the portage information and we don't need to strip RDEPENDS from the oem packages. That way they can become bog-standard ebuilds.

Adds some scripts for building oem sysexts and then ports azure to use them.

overlay app-emulation/wa-linux-agent: Start changing the ebuild to resemble a normal ebuild, without the OEM hacks. This replaces dependency on dev-lang/python-oem and dev-python/distro-oem with dev-lang/python and dev-python/distro, respectively.

overlay dev-lang/python-oem, dev-python/distro-oem: Drop the unnecessary packages.

overlay profiles, coreos-devel/board-packages: Drop things related to the dropped python packages. Maybe we should start pulling in dev-lang/python instead?

This PR replaces #683 and flatcar-archive/coreos-overlay#2506.

  • Changelog entries added in the respective changelog/ directory (user-facing change, bug fix, security fix, update)
  • Inspected CI output for image differences: /boot and /usr size, packages, list files for any missing binaries, kernel modules, config files, kernel modules, etc.

This is necessary if we want to mount a copy of the production image.
I'd like to use them in other places, and I don't need all the other
stuff build_image_util.sh provides.
…abase

Will come in handy when generating OEM sysexts. We can mount the
generic image, put the image database back into the image and emerge
extra packages without the need to drop all DEPENDS and BDEPENDS from
the ebuilds.
@krnowak krnowak marked this pull request as ready for review June 6, 2023 11:39
@krnowak
Copy link
Member Author

krnowak commented Jun 6, 2023

Needs flatcar/bootengine#62 to be merged first.

@github-actions
Copy link

github-actions bot commented Jun 6, 2023

Build action triggered: https://github.com/flatcar/scripts/actions/runs/5188092231

Copy link
Member

@pothos pothos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot!

Since the contents of this package will be now a part of the sysext
image, we don't need any special OEM-specific hacks. We don't need to
install the package in /usr/share/oem directory any more, so update
the ebuild to use the Gentoo python machinery to install files in the
usual locations. This can also use a normal python package, so replace
dependencies on dev-lang/python-oem and dev-python/distro-oem with
dev-lang/python and dev-python/distro, respectively. The waagent.conf
file we used to provide is updated (to disable auto updates, for
example, and dropped obsolete options) and now is a part of the patch,
so it is installed by the python machinery.
Th package will generate and install both grub.cfg and oem-release
files into /usr/share/oem. Each platform can customize the process by
providing their own fragments for each of the two files if necessary.
This package will be used for the sysext image, instead of for
installing files into /usr/share/oem. This means that we can drop some
files or move them elsewhere. The systemd service file is not needed,
because it is installed by the app-emulation/wa-linux-agent package
now. This also means that the ignition file as lost its purpose. The
grub.cfg and oem-release must be installed in /usr/share/oem, next to
the sysext raw image file, so handling of these files is moved to the
newly added coreos-base/common-oem-files package. `eject` symlink to
`/usr/bin/true` is installed in the newly added manglefs.sh script.

With this done, we also opt into building an OEM sysext image for
Azure platform.
It isn't doing much as nothing QEMU-specific was being installed into
the OEM partition.

With that done, we opt into building an OEM sysext image for QEMU
platform.
We don't have an update process of the OEM sysexts implemented yet, so
use a fake "initial" version for them and make them independent from
OS version.
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.

3 participants