Register services with a known port with SRV record

see
https://github.com/docker/docker_aws/issues/15#issuecomment-634357859

Signed-off-by: Nicolas De Loof <nicolas.deloof@gmail.com>
This commit is contained in:
Nicolas De Loof 2020-05-27 14:34:17 +02:00
parent 3283bceac6
commit a798c95963
No known key found for this signature in database
GPG Key ID: 9858809D6F8F6E7E
3 changed files with 23 additions and 14 deletions

View File

@ -131,18 +131,31 @@ func (c client) Convert(project *compose.Project) (*cloudformation.Template, err
}
serviceRegistration := fmt.Sprintf("%sServiceDiscoveryEntry", service.Name)
records := []cloudmap.Service_DnsRecord{
{
TTL: 60,
Type: cloudmapapi.RecordTypeA,
},
}
serviceRegistry := ecs.Service_ServiceRegistry{
RegistryArn: cloudformation.GetAtt(serviceRegistration, "Arn"),
}
if len(service.Ports) > 0 {
records = append(records, cloudmap.Service_DnsRecord{
TTL: 60,
Type: cloudmapapi.RecordTypeSrv,
})
serviceRegistry.Port = int(service.Ports[0].Target)
}
template.Resources[serviceRegistration] = &cloudmap.Service{
Description: fmt.Sprintf("%q service discovery entry in Cloud Map", service.Name),
HealthCheckConfig: healthCheck,
Name: service.Name,
NamespaceId: cloudformation.Ref("CloudMap"),
DnsConfig: &cloudmap.Service_DnsConfig{
DnsRecords: []cloudmap.Service_DnsRecord{
{
TTL: 300,
Type: cloudmapapi.RecordTypeA,
},
},
DnsRecords: records,
RoutingPolicy: cloudmapapi.RoutingPolicyMultivalue,
},
}
@ -169,12 +182,8 @@ func (c client) Convert(project *compose.Project) (*cloudformation.Template, err
},
SchedulingStrategy: ecsapi.SchedulingStrategyReplica,
ServiceName: service.Name,
ServiceRegistries: []ecs.Service_ServiceRegistry{
{
RegistryArn: cloudformation.GetAtt(serviceRegistration, "Arn"),
},
},
TaskDefinition: cloudformation.Ref(taskDefinition),
ServiceRegistries: []ecs.Service_ServiceRegistry{serviceRegistry},
TaskDefinition: cloudformation.Ref(taskDefinition),
}
}
return template, nil

View File

@ -135,7 +135,7 @@
"DnsConfig": {
"DnsRecords": [
{
"TTL": 300,
"TTL": 60,
"Type": "A"
}
],

View File

@ -135,7 +135,7 @@
"DnsConfig": {
"DnsRecords": [
{
"TTL": 300,
"TTL": 60,
"Type": "A"
}
],