spilo
spilo copied to clipboard
AWS IMDSv2 Support for environment detection
Spilo is awesome and can automatically detect the environment it is running in.
To detect when it is running in AWS, it uses the Instance Metadata Service. Today, it uses v1 of the API, however AWS is transitioning to v2. Nowadays, new EC2 instance machine images often configured to only support v2.
Without support for detecting AWS using the v2 API, Spilo set the environment to PROVIDER_UNSUPPORTED
, and will fail to perform certain bootstrap actions, namely backup (aka clone) restoration.
To fix this, we just need to call IMDSv2's session token endpoint in the get_provider
function, and if we get a response, we know the environment is still AWS.