62 lines
2.6 KiB
Markdown
62 lines
2.6 KiB
Markdown
|
|
# Bootstrap ZOS
|
|
|
|
- automated build process for arm64, amd64
|
|
- recent kernel
|
|
- the configuration of the zinit is done on Bootstrap server (which registrars to connect to, the config file)
|
|
- download the intitial needed binaries and config files from the bootstrap server
|
|
- when downloading the files check an md5 and check the signature with the specified pub key of bootstrap server
|
|
- is done by means of a list (text file) which describes the files which need to be downloaded and hash
|
|
- the list is signed with priv key of the bootstrap server
|
|
- binaries we need are zinit, mycelium, youki, ttyd and other minimum required components
|
|
|
|
when booting the node we specify,
|
|
|
|
is then part part of the iso or image created
|
|
|
|
- md5 of bootstrap config file
|
|
- public key of the bootstrap server (to verify the list of binary files)
|
|
- url of Bootstrap server (can be http(s), ...)
|
|
- farmerid (no longer going to tfchain, for now just used and put a value in zos we can query)
|
|
- farmingpoolid (for now just used and put a value in zos we can query)
|
|
|
|
### the config file
|
|
|
|
content
|
|
|
|
- registrars see zinit config
|
|
- size of root partition (if 0 then ramdisk)
|
|
- which mycelium nodes to connect to
|
|
- debug mode, see ttyd,if debug mode specify which mycelium nodes can connect as debugger
|
|
- root ttyd (for debug purposes, is not enabled by default, needs passwd and mycelium only)
|
|
- description (so the user using bootstrap can see what is going on)
|
|
- different location (by name) of the binaries e.g. useful for debug
|
|
- ?
|
|
|
|
the person who sets up (admin) a bootstrap server can specify different config files,
|
|
when creating the image the user can chose which config file, if only 1 then no
|
|
choice.
|
|
|
|
the admin can create more than 1 dir with the binary files needed.
|
|
there is a tool which creates a list of the dir and signs this list with the private key of the bootstrap server.
|
|
|
|
|
|
## requirements
|
|
|
|
- good decent logging to screen if user asks to see
|
|
- no need to download an flist to get through the bootstrap (the intial used files are downloaded directly from bootstrap server)
|
|
- small image
|
|
- everyone an build their own bootstrap server
|
|
|
|
## remarks
|
|
|
|
- maybe zinit should be part of the bootstrap in the image, and zinit can download the required binaries like ttyd, mycelium,youki
|
|
- maybe a small 1 GB root parition should be created to have just these intital files, so it doesn't have to be downloaded all the time.
|
|
|
|
## alternatives
|
|
|
|
- use flist approach, want to try to keep all as simple as possible though, this
|
|
widens the components needed, if we use flists then need to be part of same
|
|
bootstrap server, so we basically have it all embedded in one easy to use
|
|
component.
|