diff options
author | Graham Christensen <graham@grahamc.com> | 2020-11-18 11:42:32 -0500 |
---|---|---|
committer | Graham Christensen <graham@grahamc.com> | 2020-11-18 11:42:32 -0500 |
commit | 21339b41bf60847b0b8880b8ca5ceb2867044bf1 (patch) | |
tree | eff01cbac1307bb04bff101de8668f0b5d81659a /nixos | |
parent | 6625284c397b44bc9518a5a1567c1b5aae455c08 (diff) |
nixos: openstack: have its own metadata fetcher expression
These two APIs have diverged over time and are no longer compatible.
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/virtualisation/openstack-config.nix | 2 | ||||
-rw-r--r-- | nixos/modules/virtualisation/openstack-metadata-fetcher.nix | 23 |
2 files changed, 24 insertions, 1 deletions
diff --git a/nixos/modules/virtualisation/openstack-config.nix b/nixos/modules/virtualisation/openstack-config.nix index c2da5d0d2301..d01e0f23aba1 100644 --- a/nixos/modules/virtualisation/openstack-config.nix +++ b/nixos/modules/virtualisation/openstack-config.nix @@ -3,7 +3,7 @@ with lib; let - metadataFetcher = import ./ec2-metadata-fetcher.nix { + metadataFetcher = import ./openstack-metadata-fetcher.nix { targetRoot = "/"; wgetExtraOptions = "--retry-connrefused"; }; diff --git a/nixos/modules/virtualisation/openstack-metadata-fetcher.nix b/nixos/modules/virtualisation/openstack-metadata-fetcher.nix new file mode 100644 index 000000000000..b531787c31a2 --- /dev/null +++ b/nixos/modules/virtualisation/openstack-metadata-fetcher.nix @@ -0,0 +1,23 @@ +{ targetRoot, wgetExtraOptions }: +'' + metaDir=${targetRoot}etc/ec2-metadata + mkdir -m 0755 -p "$metaDir" + + echo "getting EC2 instance metadata..." + + if ! [ -e "$metaDir/ami-manifest-path" ]; then + wget ${wgetExtraOptions} -O "$metaDir/ami-manifest-path" http://169.254.169.254/1.0/meta-data/ami-manifest-path + fi + + if ! [ -e "$metaDir/user-data" ]; then + wget ${wgetExtraOptions} -O "$metaDir/user-data" http://169.254.169.254/1.0/user-data && chmod 600 "$metaDir/user-data" + fi + + if ! [ -e "$metaDir/hostname" ]; then + wget ${wgetExtraOptions} -O "$metaDir/hostname" http://169.254.169.254/1.0/meta-data/hostname + fi + + if ! [ -e "$metaDir/public-keys-0-openssh-key" ]; then + wget ${wgetExtraOptions} -O "$metaDir/public-keys-0-openssh-key" http://169.254.169.254/1.0/meta-data/public-keys/0/openssh-key + fi +'' |