I wrote a tiny tool to connect to the Azure Instance Metadata Service (which is what cloud-init uses on Azure), and it’s a 40 KiB binary with no dependencies outside of the FreeBSD base system. I looked at cloud-init but it uses YAML and I couldn’t find a parser for YAML that weighed less than 1 MiB, what does this use? I’d love to have a tiny replacement for cloud-init. I have no idea why cloud-init ships data in YAML. For Azure, the YAML is preprocessed to encode it as base64 and embed it in a JSON document, they could easily use something like JSON or CBOR that have small parsers, even if the input is YAML.
The fact that my install of Cloud to Butt rewrote this title to end in “openbsd but infrastructure”… priceless
I wrote a tiny tool to connect to the Azure Instance Metadata Service (which is what cloud-init uses on Azure), and it’s a 40 KiB binary with no dependencies outside of the FreeBSD base system. I looked at cloud-init but it uses YAML and I couldn’t find a parser for YAML that weighed less than 1 MiB, what does this use? I’d love to have a tiny replacement for cloud-init. I have no idea why cloud-init ships data in YAML. For Azure, the YAML is preprocessed to encode it as base64 and embed it in a JSON document, they could easily use something like JSON or CBOR that have small parsers, even if the input is YAML.
Looks like it parses the files by just awking the appropriate lines. It only supports a few cloud-init attributes.
yes, the idea was to keep it simple, no need to have all the functions since all of them are almost linux oriented.