Add Private Host IPv4 address to container metadata #2025
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
COPY OF #2000
Related issue: #1575
Related PR: #1730
PR 1730 adds the Public IP Address of the host to the container metadata
file, however the EC2 host may be configured without a public address.
In this case, the EC2 metadata API returns a 404 response, and the host
IP is not available to containers.
Example ECS Agent Log
This commit adds an extra field to the container metadata json,
HostPrivateIPv4Address
which is available on EC2 hosts withouta public address.
Implementation details
This commit mostly follows the implementation from #1730 but adds an extra field for the private IP. If the address is not available in the ec2 metadata, then the field is omitted in the container metadata json.
Testing
I've added tests for this field. Mostly they are copies of the existing public IP tests, with sed replacements.
I have also tested this with a running ECS instance based on Amazon Linux 2.
New tests cover the changes: yes
Description for the changelog
Feature - Add Host EC2 instance Private IPv4 address to container metadata file
Licensing
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.