Skip to content

Commit

Permalink
Merge pull request #1352 from philrud/dc-ipv6
Browse files Browse the repository at this point in the history
Add IPv6 address to the datacenter metadata keys
  • Loading branch information
philrud committed Oct 15, 2020
2 parents 38b99a4 + f431395 commit b84b5c0
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

import java.util.Collections;

import static com.netflix.appinfo.AmazonInfo.MetaDataKey.ipv6;
import static com.netflix.appinfo.AmazonInfo.MetaDataKey.localIpv4;
import static com.netflix.appinfo.AmazonInfo.MetaDataKey.publicHostname;
import static org.hamcrest.CoreMatchers.is;
Expand Down Expand Up @@ -37,6 +38,10 @@ public void testResolveDefaultAddress() {

info.getMetadata().remove(localIpv4.getName());
config = createConfig(info);
assertThat(config.resolveDefaultAddress(false), is(info.get(ipv6)));

info.getMetadata().remove(ipv6.getName());
config = createConfig(info);
assertThat(config.resolveDefaultAddress(false), is(dummyDefault));
}

Expand All @@ -47,7 +52,8 @@ private Ec2EurekaArchaius2InstanceConfig createConfig(AmazonInfo info) {
public String[] getDefaultAddressResolutionOrder() {
return new String[] {
publicHostname.name(),
localIpv4.name()
localIpv4.name(),
ipv6.name()
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ public enum MetaDataKey {
availabilityZone("availability-zone", "placement/"),
publicHostname("public-hostname"),
publicIpv4("public-ipv4"),
ipv6("ipv6"),
spotTerminationTime("termination-time", "spot/"),
spotInstanceAction("instance-action", "spot/"),
mac("mac"), // mac is declared above vpcId so will be found before vpcId (where it is needed)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import org.junit.Before;
import org.junit.Test;

import static com.netflix.appinfo.AmazonInfo.MetaDataKey.ipv6;
import static com.netflix.appinfo.AmazonInfo.MetaDataKey.localIpv4;
import static com.netflix.appinfo.AmazonInfo.MetaDataKey.publicHostname;
import static org.hamcrest.CoreMatchers.is;
Expand Down Expand Up @@ -37,6 +38,10 @@ public void testResolveDefaultAddress() {

info.getMetadata().remove(localIpv4.getName());
config = createConfig(info);
assertThat(config.resolveDefaultAddress(false), is(info.get(ipv6)));

info.getMetadata().remove(ipv6.getName());
config = createConfig(info);
assertThat(config.resolveDefaultAddress(false), is(dummyDefault));
}

Expand All @@ -57,7 +62,8 @@ private CloudInstanceConfig createConfig(AmazonInfo info) {
public String[] getDefaultAddressResolutionOrder() {
return new String[] {
publicHostname.name(),
localIpv4.name()
localIpv4.name(),
ipv6.name()
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,7 @@ private InstanceInfo generateInstanceInfo(int appIndex, int appInstanceId, boole
String privateHostname = "ip-10.0" + appIndex + "." + appInstanceId + ".compute.internal";
String publicIp = "20.0." + appIndex + '.' + appInstanceId;
String privateIp = "192.168." + appIndex + '.' + appInstanceId;
String ipv6 = "::FFFF:" + publicIp;

String instanceId = String.format("i-%04d%04d", appIndex, appInstanceId);
if (taggedId) {
Expand All @@ -190,6 +191,7 @@ private InstanceInfo generateInstanceInfo(int appIndex, int appInstanceId, boole
.addMetadata(MetaDataKey.localIpv4, privateIp)
.addMetadata(MetaDataKey.publicHostname, hostName)
.addMetadata(MetaDataKey.publicIpv4, publicIp)
.addMetadata(MetaDataKey.ipv6, ipv6)
.build();

String unsecureURL = "http://" + hostName + ":8080";
Expand Down

0 comments on commit b84b5c0

Please sign in to comment.