in ecs-cli/modules/cli/servicediscovery/servicediscovery_helper.go [112:139]
func validateMergedSDInputFields(input *utils.ServiceDiscovery, networkMode string) error {
dnsType := getDNSType(input.ServiceDiscoveryService, networkMode, false)
if dnsType == servicediscovery.RecordTypeSrv && input.ContainerName == "" {
return fmt.Errorf("container_name is a required field when using SRV DNS records")
}
if dnsType == servicediscovery.RecordTypeSrv && input.ContainerPort == nil {
return fmt.Errorf("container_port is a required field when using SRV DNS records")
}
hasPublic := hasNamespace(input.PublicDNSNamespace.Namespace)
hasPrivate := hasNamespace(input.PrivateDNSNamespace.Namespace)
if hasPublic && hasPrivate {
return fmt.Errorf("Both a public and private namespace can not be used with Service Discovery; please use only 1 namespace")
}
if !hasPublic && !hasPrivate {
return fmt.Errorf("To use Service Discovery, please specify a DNS namespace")
}
if input.PrivateDNSNamespace.Name != "" && input.PrivateDNSNamespace.ID == "" {
if input.PrivateDNSNamespace.VPC == "" {
return fmt.Errorf("VPC is required when specifying private namespace by name")
}
}
return nil
}