tinkerbell / hegel

Instance Metadata Service
https://tinkerbell.org
Apache License 2.0
97 stars 32 forks source link

Implement vendor-data paths #62

Closed displague closed 2 years ago

displague commented 3 years ago

Expected Behaviour

Users providing metadata may wish to include vendor-data in the metadata. Vendor data is like userdata, but it is only run on first boot and can be overridden by userdata. https://cloudinit.readthedocs.io/en/latest/topics/vendordata.html

This vendor data is currently not exposed through the EC2 compatibility paths.

https://github.com/tinkerbell/hegel/blob/9f5da0a80af990031230b0698d56606787b16eec/http-server/http_handlers.go#L26-L49

Tools like cloud-init know to look for vendor-data. https://github.com/canonical/cloud-init/blob/35aa9db6f8e2ba05d366776c0e8d97f52217e930/cloudinit/util.py

See also, https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-categories.html

Current Behaviour

vendor-data is not exposed through the EC2 metadata.

Possible Solution

Implement vendor-data, treating it as a URL that acts like userdata, supplied by a vendordata metadata key.

Steps to Reproduce (for bugs)

1. 2. 3. 4.

Context

Your Environment

jacobweinstock commented 2 years ago

Hey @displague, wanted to just check that this is still outstanding, yes?

displague commented 2 years ago

@jacobweinstock yes - still interested in this as it would permit tinkerbell users to set their userdata values while providing a space for their users to set their own userdata.

chrisdoherty4 commented 2 years ago

Having discussed what Hegel's API is in the community meeting and with the development of the Hegel metadata API I'm closing this in favor of waiting for the Hegel metadata with #112

Also see #77