app-admin/google-guest-configs: New package for udev rules and scripts#3606
app-admin/google-guest-configs: New package for udev rules and scripts#3606chewi wants to merge 4 commits into
Conversation
bc5ab47 to
98c1495
Compare
98c1495 to
124c5b6
Compare
krnowak
left a comment
There was a problem hiding this comment.
This seems to be missing your baselayout PR (flatcar/baselayout#43) or is the PR going to be pulled as a separate scripts PR?
There was a problem hiding this comment.
I see you are changing the versioning of the package. This makes sense, since the package now is not tied only with app-emulation/google-compute-engine, but I'm not sure if using a current date is a way to go - would making it 1.0 make more sense?
There was a problem hiding this comment.
I can't remember why I picked 20260102. It was probably the version of google-guest-configs at the time, and I must have decided to use the later of the two. I still think that makes sense. Better than having a downgrade to some meaningless 1.0.
There was a problem hiding this comment.
I've now bumped that and added a note to the ebuild.
We already have GCE disk rules in coreos-init, but a user has pointed out that the newer NVMe rules are missing. Let's take the rules directly from upstream instead. This is loosely based on the ChromiumOS package of the same name. Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
This is now handled in the app-admin/google-guest-configs package. Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
Signed-off-by: James Le Cuirot <jlecuirot@microsoft.com>
As discussed, this was still in draft. |
We already have GCE disk rules in coreos-init, but a user has pointed out that the newer NVMe rules are missing. Let's take the rules directly from upstream instead. This is loosely based on the ChromiumOS package of the same name.
When bumping, we must ensure that the Dracut modules do not install files that would make runtime changes to systems to other than GCE VMs because the initrd is shared between image types. The udev disk rules are currently safe.
This also adds Google's 60-gce-network-security.conf sysctl file. These settings are actually generic and not even networking-specific, but even if we're not going to apply them to Flatcar in general, we should apply them to Flatcar on GCE so that it behaves like other GCE VMs. I had to renumber our baselayout.conf file to take precedence though because Google's file disabled IP forwarding, which breaks Kubernetes.
The wider GCE packages are very outdated. I started looking into this in early 2025. I then noticed this had already been attempted the year before in #1826. This change at least implements a small part of what was in that PR without touching the rest.
This is being merged in tandem with flatcar/bootengine#125, flatcar/init#140, and flatcar/baselayout#43.
How to use
Spin up a VM with Kola using
--gce-machinetype c3-standard-4and check whether the "google" symlink exists under /dev/disk.You can also take this further by adding an extra disk and trying to provision it by-id with Ignition. This is awkward to pull off though because Kola doesn't let you add an extra disk, so you need to stop it tearing down the VM, add a disk manually with
gcloud, and then useflatcar-reset.It's easy to check whether Google's sysctl settings have taken effect on GCE (and not elsewhere). One such setting is
kernel.randomize_va_space = 2.Testing done
This Jenkins run using GCE has passed. I've also done a lot of manual testing as above.
changelog/directory (user-facing change, bug fix, security fix, update)/bootand/usrsize, packages, list files for any missing binaries, kernel modules, config files, kernel modules, etc.