[GH-ISSUE #737] NixOS 20.09 missing netboot artifacts in Hydra #1754

Closed
opened 2026-03-01 18:36:01 +03:00 by kerem · 35 comments
Owner

Originally created by @antonym on GitHub (Oct 31, 2020).
Original GitHub issue: https://github.com/netbootxyz/netboot.xyz/issues/737

It appears that NixOS isn't building netboot artifacts from Hydra anymore for 20.09. If there's not a location upstream anymore to pull the netboot files, we may have to go build them with docker and release it ourselves.

https://nixos.org/manual/nixos/stable/#sec-booting-from-pxe

An example of a builder I hacked on a while ago:

https://github.com/antonym/nixos-builder/blob/master/.circleci/config.yml

Originally created by @antonym on GitHub (Oct 31, 2020). Original GitHub issue: https://github.com/netbootxyz/netboot.xyz/issues/737 It appears that NixOS isn't building netboot artifacts from Hydra anymore for 20.09. If there's not a location upstream anymore to pull the netboot files, we may have to go build them with docker and release it ourselves. https://nixos.org/manual/nixos/stable/#sec-booting-from-pxe An example of a builder I hacked on a while ago: https://github.com/antonym/nixos-builder/blob/master/.circleci/config.yml
Author
Owner

@Mic92 commented on GitHub (Nov 3, 2020):

Do you depend on circle CI for building? There is also very good github actions support for nix: https://github.com/cachix/install-nix-action and we have similar tooling for https://github.com/nix-community/nix-travis-ci

<!-- gh-comment-id:720954620 --> @Mic92 commented on GitHub (Nov 3, 2020): Do you depend on circle CI for building? There is also very good github actions support for nix: https://github.com/cachix/install-nix-action and we have similar tooling for https://github.com/nix-community/nix-travis-ci
Author
Owner

@antonym commented on GitHub (Nov 3, 2020):

We're using travis mainly, but for the last release we pulled the netboot builds directly from Hydra as downloads, it appears the netboot jobs are not producing the build artifiacts anymore, so if we can't get those anymore we may just need to build them ourselves.

We previously pulled artifacts from here for last release:
https://hydra.nixos.org/job/nixos/release-20.03/nixos.netboot.x86_64-linux/latest

<!-- gh-comment-id:721158634 --> @antonym commented on GitHub (Nov 3, 2020): We're using travis mainly, but for the last release we pulled the netboot builds directly from Hydra as downloads, it appears the netboot jobs are not producing the build artifiacts anymore, so if we can't get those anymore we may just need to build them ourselves. We previously pulled artifacts from here for last release: https://hydra.nixos.org/job/nixos/release-20.03/nixos.netboot.x86_64-linux/latest
Author
Owner

@Mic92 commented on GitHub (Nov 3, 2020):

Ok. It should be straight forward convert your circle ci script to a travis ci job. cc @Lassulus

<!-- gh-comment-id:721191502 --> @Mic92 commented on GitHub (Nov 3, 2020): Ok. It should be straight forward convert your circle ci script to a travis ci job. cc @Lassulus
Author
Owner

@Mic92 commented on GitHub (Nov 3, 2020):

Where should we push the resulting image?

<!-- gh-comment-id:721193016 --> @Mic92 commented on GitHub (Nov 3, 2020): Where should we push the resulting image?
Author
Owner

@antonym commented on GitHub (Nov 3, 2020):

Yeah, I'll go down that route if I need to. Obviously I'd like to pull the bits directly from NixOS without having to re-host as then they are the most trusted and updated source, so I'd like to understand if there is a new location for the artifacts and if not, we'll see about building the artifacts ourselves and hosting.

<!-- gh-comment-id:721193034 --> @antonym commented on GitHub (Nov 3, 2020): Yeah, I'll go down that route if I need to. Obviously I'd like to pull the bits directly from NixOS without having to re-host as then they are the most trusted and updated source, so I'd like to understand if there is a new location for the artifacts and if not, we'll see about building the artifacts ourselves and hosting.
Author
Owner

@Mic92 commented on GitHub (Nov 3, 2020):

I can also checkout why we no longer building the netboot image. We also have some ways to hosting stuff on tarballs.nixos.org.

<!-- gh-comment-id:721193899 --> @Mic92 commented on GitHub (Nov 3, 2020): I can also checkout why we no longer building the netboot image. We also have some ways to hosting stuff on tarballs.nixos.org.
Author
Owner

@antonym commented on GitHub (Nov 3, 2020):

Here's where we pulled the 20.03 artifacts from:

https://hydra.nixos.org/build/124244129

<!-- gh-comment-id:721200833 --> @antonym commented on GitHub (Nov 3, 2020): Here's where we pulled the 20.03 artifacts from: https://hydra.nixos.org/build/124244129
Author
Owner

@Mic92 commented on GitHub (Nov 3, 2020):

I think we have people working on that already: https://github.com/NixOS/hydra/pull/827 (cc @ajs124)

<!-- gh-comment-id:721202457 --> @Mic92 commented on GitHub (Nov 3, 2020): I think we have people working on that already: https://github.com/NixOS/hydra/pull/827 (cc @ajs124)
Author
Owner

@github-actions[bot] commented on GitHub (Dec 4, 2020):

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

<!-- gh-comment-id:738503312 --> @github-actions[bot] commented on GitHub (Dec 4, 2020): This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Author
Owner

@Mic92 commented on GitHub (Dec 4, 2020):

still relevant.

<!-- gh-comment-id:738623596 --> @Mic92 commented on GitHub (Dec 4, 2020): still relevant.
Author
Owner

@github-actions[bot] commented on GitHub (Jan 4, 2021):

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

<!-- gh-comment-id:753725625 --> @github-actions[bot] commented on GitHub (Jan 4, 2021): This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Author
Owner

@Mic92 commented on GitHub (Jan 5, 2021):

still an issue.

<!-- gh-comment-id:754694947 --> @Mic92 commented on GitHub (Jan 5, 2021): still an issue.
Author
Owner

@antonym commented on GitHub (Jun 2, 2021):

https://hydra.nixos.org/job/nixos/release-21.05/nixos.netboot.x86_64-linux/latest

Still looks broken and missing artifacts...

<!-- gh-comment-id:853126681 --> @antonym commented on GitHub (Jun 2, 2021): https://hydra.nixos.org/job/nixos/release-21.05/nixos.netboot.x86_64-linux/latest Still looks broken and missing artifacts...
Author
Owner

@fuu0 commented on GitHub (Jun 9, 2021):

Looks like its fixed now, the latest build is successful:
https://hydra.nixos.org/build/145123607

<!-- gh-comment-id:857852310 --> @fuu0 commented on GitHub (Jun 9, 2021): Looks like its fixed now, the latest build is successful: https://hydra.nixos.org/build/145123607
Author
Owner

@Lassulus commented on GitHub (Jun 9, 2021):

but still no artifacts. Guess we need to build the image ourself then.

<!-- gh-comment-id:857874853 --> @Lassulus commented on GitHub (Jun 9, 2021): but still no artifacts. Guess we need to build the image ourself then.
Author
Owner

@ajs124 commented on GitHub (Jun 9, 2021):

It's still the same bug in hydra. It just hasn't been fixed.

<!-- gh-comment-id:857901493 --> @ajs124 commented on GitHub (Jun 9, 2021): It's still the same bug in hydra. It just hasn't been fixed.
Author
Owner

@Mic92 commented on GitHub (Jun 10, 2021):

Would be a repo in nix-community acceptable that uploads nixos image to release assets?

<!-- gh-comment-id:858273055 --> @Mic92 commented on GitHub (Jun 10, 2021): Would be a repo in [nix-community](https://github.com/nix-community) acceptable that uploads nixos image to release assets?
Author
Owner

@thelamer commented on GitHub (Jun 10, 2021):

Would be a repo in nix-community acceptable that uploads nixos image to release assets?

Yes, 100% yes.
In general it is way easier for all kinds of downstream integration and adoption having the releases be able to be parsed at a REST endpoint like GitHub's API. Even if it is just a directly uploaded release from your existing build system. You also get to leverage free CDN coverage as GitHub essentially pays your AWS bill.
Last time I dug into this I was not able to find an API combination that would allow me to drill down to the latest build artifact version and download URL.

<!-- gh-comment-id:858286962 --> @thelamer commented on GitHub (Jun 10, 2021): > Would be a repo in [nix-community](https://github.com/nix-community) acceptable that uploads nixos image to release assets? Yes, 100% yes. In general it is way easier for all kinds of downstream integration and adoption having the releases be able to be parsed at a REST endpoint like GitHub's API. Even if it is just a directly uploaded release from your existing build system. You also get to leverage free CDN coverage as GitHub essentially pays your AWS bill. Last time I dug into this I was not able to find an API combination that would allow me to drill down to the latest build artifact version and download URL.
Author
Owner

@Mic92 commented on GitHub (Jun 10, 2021):

There you go: https://github.com/nix-community/nixos-images/releases

<!-- gh-comment-id:858360525 --> @Mic92 commented on GitHub (Jun 10, 2021): There you go: https://github.com/nix-community/nixos-images/releases
Author
Owner

@Mic92 commented on GitHub (Jun 10, 2021):

Current release: https://github.com/nix-community/nixos-images/releases/tag/nixos-21.05
Unstable version (rolling release): https://github.com/nix-community/nixos-images/releases/tag/nixos-unstable

<!-- gh-comment-id:858361431 --> @Mic92 commented on GitHub (Jun 10, 2021): Current release: https://github.com/nix-community/nixos-images/releases/tag/nixos-21.05 Unstable version (rolling release): https://github.com/nix-community/nixos-images/releases/tag/nixos-unstable
Author
Owner

@thelamer commented on GitHub (Jun 10, 2021):

Great stuff!
I am AFK for a couple days, but will prioritize ingesting from this endpoint when I get back.
You can also use the "prerelease" release type to split the rolling releases from the stable ones. Simplifies ingestion and keeps a tagged history of your releases.

<!-- gh-comment-id:858522868 --> @thelamer commented on GitHub (Jun 10, 2021): Great stuff! I am AFK for a couple days, but will prioritize ingesting from this endpoint when I get back. You can also use the "prerelease" release type to split the rolling releases from the stable ones. Simplifies ingestion and keeps a tagged history of your releases.
Author
Owner

@antonym commented on GitHub (Jun 12, 2021):

Thanks for setting up the release like that. Is the netboot.ipxe relevant still? I noticed it was not in that repo. Is that init directory unique to every image created?

#!ipxe
kernel bzImage init=/nix/store/1s2k54l716rl0vnjz3qjqhjy8gisqvsx-nixos-system-nixos-20.03.2625.9ea61f7bc44/init initrd=initrd loglevel=4
initrd initrd
boot
<!-- gh-comment-id:860002452 --> @antonym commented on GitHub (Jun 12, 2021): Thanks for setting up the release like that. Is the netboot.ipxe relevant still? I noticed it was not in that repo. Is that init directory unique to every image created? ``` #!ipxe kernel bzImage init=/nix/store/1s2k54l716rl0vnjz3qjqhjy8gisqvsx-nixos-system-nixos-20.03.2625.9ea61f7bc44/init initrd=initrd loglevel=4 initrd initrd boot ```
Author
Owner

@Mic92 commented on GitHub (Jun 12, 2021):

Thanks for setting up the release like that. Is the netboot.ipxe relevant still? I noticed it was not in that repo. Is that init directory unique to every image created?

#!ipxe
kernel bzImage init=/nix/store/1s2k54l716rl0vnjz3qjqhjy8gisqvsx-nixos-system-nixos-20.03.2625.9ea61f7bc44/init initrd=initrd loglevel=4
initrd initrd
boot

No it is not unique. the ipxe script is still present in the build output. I will also upload it.

<!-- gh-comment-id:860010311 --> @Mic92 commented on GitHub (Jun 12, 2021): > Thanks for setting up the release like that. Is the netboot.ipxe relevant still? I noticed it was not in that repo. Is that init directory unique to every image created? > > ``` > #!ipxe > kernel bzImage init=/nix/store/1s2k54l716rl0vnjz3qjqhjy8gisqvsx-nixos-system-nixos-20.03.2625.9ea61f7bc44/init initrd=initrd loglevel=4 > initrd initrd > boot > ``` No it is not unique. the ipxe script is still present in the build output. I will also upload it.
Author
Owner

@Mic92 commented on GitHub (Jun 12, 2021):

Ok. It also includes netboot-x86_64-linux.ipxe Let me know if you need to have things structured differently.
Right now it is still easy to change things without breaking user expectations.

<!-- gh-comment-id:860016201 --> @Mic92 commented on GitHub (Jun 12, 2021): Ok. It also includes `netboot-x86_64-linux.ipxe` Let me know if you need to have things structured differently. Right now it is still easy to change things without breaking user expectations.
Author
Owner

@thelamer commented on GitHub (Jun 12, 2021):

If you slightly modify that ipxe file to point to the remote assets we can simply chain into it IE:

#!ipxe
kernel https://github.com/nix-community/nixos-images/releases/download/nixos-21.05/bzImage-x86_64-linux init=/nix/store/bazp55pri6m6kqwc530vdvv1ss2jmhw5-nixos-system-nixos-21.05beta-160507.gfedcba/init initrd=initrd loglevel=4
initrd https://github.com/nix-community/nixos-images/releases/download/nixos-21.05/initrd-x86_64-linux
boot

Then our boot entries will point directly to the IPXE file in github tagged by their release.

Furthermore we can also just chain into menu hosted on your side so you have full control over the user experience.

Let me know if any of this sounds good to you, otherwise the process would be we would have two boot entries one for stable one for rolling and we would pull the ipxe file parsing out the bazp55pri6m6kqwc530vdvv1ss2jmhw5-nixos-system-nixos-21.05beta-160507.gfedcba section and host the IPXE on our side while pointing to the remote assets located in the release.

<!-- gh-comment-id:860121806 --> @thelamer commented on GitHub (Jun 12, 2021): If you slightly modify that ipxe file to point to the remote assets we can simply chain into it IE: ``` #!ipxe kernel https://github.com/nix-community/nixos-images/releases/download/nixos-21.05/bzImage-x86_64-linux init=/nix/store/bazp55pri6m6kqwc530vdvv1ss2jmhw5-nixos-system-nixos-21.05beta-160507.gfedcba/init initrd=initrd loglevel=4 initrd https://github.com/nix-community/nixos-images/releases/download/nixos-21.05/initrd-x86_64-linux boot ``` Then our boot entries will point directly to the IPXE file in github tagged by their release. Furthermore we can also just chain into menu hosted on your side so you have full control over the user experience. Let me know if any of this sounds good to you, otherwise the process would be we would have two boot entries one for stable one for rolling and we would pull the ipxe file parsing out the `bazp55pri6m6kqwc530vdvv1ss2jmhw5-nixos-system-nixos-21.05beta-160507.gfedcba` section and host the IPXE on our side while pointing to the remote assets located in the release.
Author
Owner

@Mic92 commented on GitHub (Jun 13, 2021):

If you slightly modify that ipxe file to point to the remote assets we can simply chain into it IE:

#!ipxe
kernel https://github.com/nix-community/nixos-images/releases/download/nixos-21.05/bzImage-x86_64-linux init=/nix/store/bazp55pri6m6kqwc530vdvv1ss2jmhw5-nixos-system-nixos-21.05beta-160507.gfedcba/init initrd=initrd loglevel=4
initrd https://github.com/nix-community/nixos-images/releases/download/nixos-21.05/initrd-x86_64-linux
boot

Then our boot entries will point directly to the IPXE file in github tagged by their release.

Furthermore we can also just chain into menu hosted on your side so you have full control over the user experience.

Let me know if any of this sounds good to you, otherwise the process would be we would have two boot entries one for stable one for rolling and we would pull the ipxe file parsing out the bazp55pri6m6kqwc530vdvv1ss2jmhw5-nixos-system-nixos-21.05beta-160507.gfedcba section and host the IPXE on our side while pointing to the remote assets located in the release.

The new ipxe script has now https download urls instead as requested. That hopefully also makes it more useful beyond netboot.xyz.

<!-- gh-comment-id:860170283 --> @Mic92 commented on GitHub (Jun 13, 2021): > If you slightly modify that ipxe file to point to the remote assets we can simply chain into it IE: > > ``` > #!ipxe > kernel https://github.com/nix-community/nixos-images/releases/download/nixos-21.05/bzImage-x86_64-linux init=/nix/store/bazp55pri6m6kqwc530vdvv1ss2jmhw5-nixos-system-nixos-21.05beta-160507.gfedcba/init initrd=initrd loglevel=4 > initrd https://github.com/nix-community/nixos-images/releases/download/nixos-21.05/initrd-x86_64-linux > boot > ``` > > Then our boot entries will point directly to the IPXE file in github tagged by their release. > > Furthermore we can also just chain into menu hosted on your side so you have full control over the user experience. > > Let me know if any of this sounds good to you, otherwise the process would be we would have two boot entries one for stable one for rolling and we would pull the ipxe file parsing out the `bazp55pri6m6kqwc530vdvv1ss2jmhw5-nixos-system-nixos-21.05beta-160507.gfedcba` section and host the IPXE on our side while pointing to the remote assets located in the release. The new ipxe script has now https download urls instead as requested. That hopefully also makes it more useful beyond netboot.xyz.
Author
Owner

@thelamer commented on GitHub (Jun 14, 2021):

REF: https://github.com/netbootxyz/netboot.xyz/pull/915
FYI @Mic92 only the unstable ipxe file seems to be pointing to github assets right now.

<!-- gh-comment-id:860300497 --> @thelamer commented on GitHub (Jun 14, 2021): REF: https://github.com/netbootxyz/netboot.xyz/pull/915 FYI @Mic92 only the unstable ipxe file seems to be pointing to github assets right now.
Author
Owner

@Mic92 commented on GitHub (Jun 14, 2021):

Ah, right. I was only running the script locally. Now I started the CI: https://github.com/nix-community/nixos-images/actions/runs/934594506
Updates will be than regularly every week.

<!-- gh-comment-id:860358848 --> @Mic92 commented on GitHub (Jun 14, 2021): Ah, right. I was only running the script locally. Now I started the CI: https://github.com/nix-community/nixos-images/actions/runs/934594506 Updates will be than regularly every week.
Author
Owner

@thelamer commented on GitHub (Jun 14, 2021):

Cool, this is live at development head and will be included in the next tagged release:
https://s3.amazonaws.com/dev.boot.netboot.xyz/a09871327257fd56b1225943f8f3d270ad1a5329/index.html

We ingest any published tag you have so you can add/remove them and they will show up as a boot option under the menu, the ipxe is pretty simple IE now it looks like this:
https://s3.amazonaws.com/dev.boot.netboot.xyz/a09871327257fd56b1225943f8f3d270ad1a5329/nixos.ipxe

<!-- gh-comment-id:860363170 --> @thelamer commented on GitHub (Jun 14, 2021): Cool, this is live at development head and will be included in the next tagged release: https://s3.amazonaws.com/dev.boot.netboot.xyz/a09871327257fd56b1225943f8f3d270ad1a5329/index.html We ingest any published tag you have so you can add/remove them and they will show up as a boot option under the menu, the ipxe is pretty simple IE now it looks like this: https://s3.amazonaws.com/dev.boot.netboot.xyz/a09871327257fd56b1225943f8f3d270ad1a5329/nixos.ipxe
Author
Owner

@antonym commented on GitHub (Jun 14, 2021):

Thanks all!

<!-- gh-comment-id:860369332 --> @antonym commented on GitHub (Jun 14, 2021): Thanks all!
Author
Owner

@antonym commented on GitHub (Jun 14, 2021):

Noticed one issue, the initrd= in the ipxe file needs to be updated to reflect the initrd name:

initrd=initrd needs to be initrd=initrd-x86_64-linux

Screen Shot 2021-06-14 at 6 56 14 PM
<!-- gh-comment-id:861066833 --> @antonym commented on GitHub (Jun 14, 2021): Noticed one issue, the initrd= in the ipxe file needs to be updated to reflect the initrd name: initrd=initrd needs to be initrd=initrd-x86_64-linux <img width="609" alt="Screen Shot 2021-06-14 at 6 56 14 PM" src="https://user-images.githubusercontent.com/245007/121973130-35423880-cd42-11eb-8eb2-2e8dc66fc383.png">
Author
Owner

@antonym commented on GitHub (Jun 16, 2021):

@Mic92 ^

<!-- gh-comment-id:862520780 --> @antonym commented on GitHub (Jun 16, 2021): @Mic92 ^
Author
Owner

@Mic92 commented on GitHub (Jun 16, 2021):

fixed now.

<!-- gh-comment-id:862699214 --> @Mic92 commented on GitHub (Jun 16, 2021): fixed now.
Author
Owner

@Mic92 commented on GitHub (Jun 26, 2021):

Everything alright now?

<!-- gh-comment-id:869011616 --> @Mic92 commented on GitHub (Jun 26, 2021): Everything alright now?
Author
Owner

@antonym commented on GitHub (Jun 26, 2021):

Yes, I believe it's all working now, thanks!

<!-- gh-comment-id:869016559 --> @antonym commented on GitHub (Jun 26, 2021): Yes, I believe it's all working now, thanks!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/netboot.xyz#1754
No description provided.