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

Add support for iso #433

Open
cgwalters opened this issue May 14, 2024 · 8 comments
Open

Add support for iso #433

cgwalters opened this issue May 14, 2024 · 8 comments

Comments

@cgwalters
Copy link
Contributor

See 461937c

Basically I'd like to add a new iso target which takes the input container image, and just directly makes it a bootable ISO.

This is totally distinct from what anaconda-iso is today.

(But longer term...once anaconda itself is a bootc container image (which would make total sense IMO) then anaconda-iso just becomes a special case of iso...some interesting details here)

The use case here is very similar to what we have for Fedora CoreOS and derivatives like RHEL CoreOS - the ISO produced there isn't anaconda, it's just the OS itself...with the installer as an app. Which also makes it usable in diskless scenarios.

@jlebon
Copy link

jlebon commented May 15, 2024

I think this overlaps with coreos/fedora-coreos-tracker#1725.

@cgwalters
Copy link
Contributor Author

One tangentially related thing here is the "live-os" logic; there's some special ostree+liveos sauce in the FCOS initramfs today. I think it would make sense to generalize.

@cdrage
Copy link
Contributor

cdrage commented May 31, 2024

@cgwalters Silly question, but I'm assuming this will be like a "live USB" stick that you can load on? After you live boot it, what would be the way to install? I'm assuming I can simply do: bootc install to-disk ?

@cgwalters
Copy link
Contributor Author

Yes, we'd ensure bootc in this case would have a default install flow that would install from the booted ISO.

@cdrage
Copy link
Contributor

cdrage commented May 31, 2024

Yes, we'd ensure bootc in this case would have a default install flow that would install from the booted ISO.

An awesome use-case personally for me is to have a "kubernetes node usb stick" and be able to plug it into any arbitrary computer to make it into another temporary node and have it appear in the cluster for testing.

Big 👍 from me.

@cdrage
Copy link
Contributor

cdrage commented Jun 20, 2024

Excuse my lack of knowledge for .iso... but this works as a live image already?

I did some testing and all I did was "burn" my .raw to a USB stick using etcher

I don't think we need to do anything because "burning the raw to disk" worked for me.

I just booted up a bootc image as a live OS using the raw output.

My steps:

  1. Built a bootc image (used centos:stream9)
  2. Used bib to make a .raw
  3. Used https://etcher.balena.io/ to write to a USB stick that was more than 10GB.

Obviously it will show up as 10GB because it needs the disk repartitioned, but it works!

I'm able to SSH, run containers.. do everything really as it's all being ran on the USB.
IMG_3169
IMG_3167

cdrage added a commit to cdrage/podman-desktop-extension-bootc that referenced this issue Sep 9, 2024
### What does this PR do?

* Changes the type from iso to anaconda-iso as ".iso" may be used in the
  future for something else, see: osbuild/bootc-image-builder#433

### Screenshot / video of UI

<!-- If this PR is changing UI, please include
screenshots or screencasts showing the difference -->

N/A, backend code / use anaconda-iso option

### What issues does this PR fix or reference?

<!-- Include any related issues from Podman Desktop
repository (or from another issue tracker). -->

Closes podman-desktop#482

### How to test this PR?

<!-- Please explain steps to reproduce -->

1. Test build .iso
2. See that is succesfully creates the .iso

Signed-off-by: Charlie Drage <[email protected]>
cdrage added a commit to podman-desktop/extension-bootc that referenced this issue Sep 9, 2024
### What does this PR do?

* Changes the type from iso to anaconda-iso as ".iso" may be used in the
  future for something else, see: osbuild/bootc-image-builder#433

### Screenshot / video of UI

<!-- If this PR is changing UI, please include
screenshots or screencasts showing the difference -->

N/A, backend code / use anaconda-iso option

### What issues does this PR fix or reference?

<!-- Include any related issues from Podman Desktop
repository (or from another issue tracker). -->

Closes #482

### How to test this PR?

<!-- Please explain steps to reproduce -->

1. Test build .iso
2. See that is succesfully creates the .iso

Signed-off-by: Charlie Drage <[email protected]>
@scottcwang
Copy link

In addition to an iso target, I'd also like a target of bootc-image-builder that outputs a squashfs, initramfs, and kernel to an output directory, which would be convenient for setting up PXE booting (the user would provide their own bootloader and bootloader config).

@cdrage's method isn't, strictly speaking, a live image, because a live image does extra work (dracut livenet module) to copy the live image into RAM disk.

@benblasco
Copy link

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

No branches or pull requests

5 participants