FreeBSD droplets lack user-data support?

April 18, 2015 3.1k views
Getting Started Miscellaneous FreeBSD

I recently spun up the Digital Ocean FreeBSD 10.1 image, but sadly it appears that it doesn't not respect the user-data provided unlike the Linux images.

For example the following simple user data runs fine on AWS, but on Digital Ocean fails to run:

# curl http://169.254.169.254/metadata/v1/user-data
#!/bin/tcsh

touch /tmp/user-data-did-run

Can see it didn't run post-launch with:

# ls -l /tmp/user-data-did-run
ls: /tmp/user-data-did-run: No such file or directory

An issue posted on the upstream source code for bsd-cloudinit (https://github.com/pellaeon/bsd-cloudinit/issues/5) suggests that support doesn't exist for user data with bsd cloud init yet.

Am I correct in this conclusion, or should I be passing user data to FreeBSD droplets in a different format? Additionally, if user data support is lacking, is there any plan for Digital Ocean to add it?

2 Answers

That's correct. As you suspected, we are using bsd-cloudinit to do some internal configuration on boot, but it does not currently support running user-data. Of course, the metadata service is available from FreeBSD droplets and and you can pull down user-data for your own use, but it won't be automatically be run.

Building out support for that isn't on the roadmap right now, but if we see enough demand we might re-prioritize.

Thanks for the feedback!

OK thanks for the quick answer @asb. Might be worth adding a warning to the droplet creation screen if someone provides user data and choose FreeBSD?

Hopefully someone from the community adds support into bsd-cloudinit if they feel suitably motivated, looks like mostly a case of porting the feature from the original cloudinit project.

Have another answer? Share your knowledge.