Comments (17)
from coreos-assembler.
This is a distinct initramfs from the target system, right? IOW we don't want that module installed in the ostree payload.
Today our virt image generation doesn't really do a "build" in that sense.
I think this would end up being a separate supermin-based stage?
We don't even necessarily need to turn this into a RPM, we could add it as a git submodule too like mantle.
An open question here is whether we always generate this, or whether we follow the e.g. buildextend-openstack
model where it's a separate phase. I'd kind of lean a little bit towards the latter, but it'd probably be fine to have it just be unconditional in cmd-build
.
from coreos-assembler.
It could be installed, and a kernel command line option used to enable/disable?
from coreos-assembler.
It could be installed, and a kernel command line option used to enable/disable?
Like add ConditionKernelCommandline=coreos.install
or so to coreos-install.service
? Yeah that'd get us going pretty quickly.
from coreos-assembler.
Adding @bgilbert @ajeddeloh @lucab for visibility
from coreos-assembler.
We discussed this in a live meeting and I think a conclusion is - this isn't large, let's bake it into the same initramfs (i.e. the one in the ostree commit).
We also do eventually want to do a live payload but this is a good start.
from coreos-assembler.
@nhorman Have you checked how much space the additional binaries take up in the initramfs?
from coreos-assembler.
Some more notes from yesterday discussion:
- adding more kernel cmdline options is less than ideal. For the longer term, it would be good to keep the ignition configuration as the single entry-point and trigger/configure the install-script from there (similar to previous flow)
- There is a trade-off between requiring an external
image_url
(cons: requires reachable buckets and network trips) and having a default image in the installer (cons: larger initramfs for pxe-boot). If we manage to get the base image compressed down to a sane size, it would be good to make it available as the local default source for the installer.
from coreos-assembler.
@bgilbert no, I've not done the math, but the entire initrd image for x86_64 is 40Mb, so I'm not very worried about it.
from coreos-assembler.
@cgwalters yes, the initrd is specifically constructed for the purposes of installing the coreos image, and is distinct from the initrd that boots the system after install. there is no need to have the coreos-dracut package installed to the coreos image (though it wouldn't hurt anything if it was, as long as the dracut config from the installed image didn't turn it on). that said, if you wanted to use a conditional start parameter in the unit file, you could probably just add this into your running coreos initrd, and it would work fine (i.e you would only need one initrd, not two)
from coreos-assembler.
@lucab I'm not sure how you avoid adding kernel command line options here. As I understand it, ignition runs on firstboot after the install takes place, so there is no option to trigger the install from ignition. The installer starts on a bare, uninstalled system, so it needs to know at boot time what image its going to install, and I see no other way to do that other than from the command line (or some other hook point available during the install process at run time)
As for an external image_url, thats not strictly speaking required. If you want to build an install iso, there is no reason that you can't:
- include the rhcos image on the same iso
and - configure dracut to automatically add the command line parameter image_url=file:///path/to/rhcos/on/the/iso
You can do the same thing with the other kernel command line parameters, and make a resultant image that self installs without needing external network access at all. You just need to have the command line parameters available for the pxe install use case, where all these files necessarily need to be fetched separately
from coreos-assembler.
@nhorman Okay, could you please check the size increase? It'd be good to verify that we're not blowing up the image too much.
from coreos-assembler.
I just added some notes from our meeting yesterday and discussions in #fedora-coreos over in the FCOS tracker ticket for this work: coreos/fedora-coreos-tracker#50 (comment)
from coreos-assembler.
I managed to make RHCOS images work on baremetal. I forked nhorman/coreos-dracut, to do some modifications:https://github.com/yrobla/coreos-dracut.
I needed to add some drivers and modules to make it work with real hardware. And i also added some udev commands + ifup calls on the installer, as the network interfaces were not being configured properly (i guess i was hitting some udev problems).
I also added a guide on how to build them, as i was missing some dependencies: https://github.com/yrobla/coreos-dracut/blob/master/docs/how-to-generate-images.md
from coreos-assembler.
We're agreed overall on the coreos-dracut approach right? One thing I'd say is we should rename it to coreos-installer or something as otherwise one might get it confused with https://github.com/coreos/ignition-dracut/
Let's migrate it into the coreos/ Github org?
from coreos-assembler.
@yrobla - thank you for the information
@cgwalters - yeah - i'm working on polishing this off
from coreos-assembler.
@nhorman - we've got this incorporated into Fedora CoreOS now. There is a coreos-installer RPM and an upstream repo. Closing this issue as I think this is resolved.
from coreos-assembler.
Related Issues (20)
- How to build a PXE Image with Dockerfile layering HOT 1
- `coreos.unique.boot.failure` kola test fails on aarch64
- `coreos.ignition.failure` sometimes fails on RHCOS HOT 15
- Create disk failed due to incorrect option format on Fedora 39 HOT 1
- build-arch jobs failing with "Error: unmarshalling error into &errorhandling.ErrorModel"
- cosa build error: "cli: stat /var/tmp/mantle-qemu771203327/swtpm-sock: no such file or directory" HOT 4
- [RFE] kola should support to start previous build to do external tests HOT 4
- OSBuild without compression yields GRUB failures HOT 25
- what is the difference between dasd and metal4k on s390x? HOT 9
- Kola Custom Test HOT 10
- `buildextend-virtualbox` and `buildextend-vmware` improperly handle raw disks >=8GB HOT 6
- `kola testiso` tests should check for badness in console/journal output HOT 5
- rework iscsi tests architecture HOT 2
- osbuild should use a buildroot that matches the target system HOT 6
- kola qemuexec fails on PXE with `uefi-secure` qemu-firmware HOT 2
- cosa run should't expect an image when `--netboot` is present
- 4K UEFI PXE tests failing HOT 2
- Docs: Using the provided alias with `COREOS_ASSEMBLER_CONFIG_GIT` leave FS with dangling files HOT 2
- Check that there is console output / a login prompt to make sure getty works HOT 2
- Fail test on SELinux denials and export audit.log if any found
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from coreos-assembler.