Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rgolangh/assisted-bootloader
assisted-bootloader
https://github.com/rgolangh/assisted-bootloader
Last synced: 29 days ago
JSON representation
assisted-bootloader
- Host: GitHub
- URL: https://github.com/rgolangh/assisted-bootloader
- Owner: rgolangh
- Created: 2022-10-24T09:02:53.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-02-20T13:45:45.000Z (almost 2 years ago)
- Last Synced: 2024-11-07T10:53:18.396Z (3 months ago)
- Language: Shell
- Size: 124 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.adoc
Awesome Lists containing this project
README
Assisted Bootloader
-------------------// URLS:
:assisted-bootloader: https://github.com/rgolangh/u-root/blob/c18bcfb89aab71a6bbaa94d05b7cc85501a24306/cmds/assisted-bootloader/assisted-bootloader.goTo keep lowering the bar for installing a cluster,the assisted installer supplied a custom ISO to boot
a machine with the target cluster relevant bits in its ignition and rootfs.
The opportunity to cut this even further is to make a more generic booting tool that can be pointed at any
cluster endpoint (the InfraEnv object) and pull the boot artifacts directly from it.
As more cloud providers looking for a way to add nodes using their infra, every one with its set of features
and limitation (like no boot from ISO, or limited or non-direct user-data support), a search for more
decoupled and streamlined way to add any machine to a cluster is important.This effort has 2 main artifacts:
* an {assisted-bootloader}[init program] that runs after the kernel boots(built using u-root) and
* a raw, bootable, ~60M disk image.Bootloading sequence
--
* boot a node with a disk created from that image (large enough for a full worker install)
* assisted-bootloader programs starts with infra-env-id and token arguments
* parses the iPXE script of the infra-env
* downloads kernel, initrd, and cmdline from infra-env
* `kexec` into the kernel and initrd (of the assisted ISO)
* normal assisted flow with the agent takes placeTo create a complete initramfs using the u-root fork:
[source, bash]
make initrdTo produce the disk image:
[source, bash]
make disk-imageTo use the image locally, for exploration and dev:
[source, bash]
make run-vmDemo of the disk in action with a Linode instance:
image::assisted-bootloader-with-linode.gif[]