aws-cloudformation / aws-cloudformation/cloudformation-coverage-roadmap

Add NameServers to Fn::GetAtt for AWS::ServiceDiscovery::PublicDnsNamespace

Open
#1,552 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
No language data
Stars
1.1k
Forks
62
PR merge metrics
No merged PRs in 30d

Description

### Name of the resource

Other

### Resource name

AWS::ServiceDiscovery::PublicDnsNamespace

### Description

Currently, in order to retrieve NameServers for AWS::ServiceDiscovery::PublicDnsNamespace, CustomResource/Lambda is required, yet, it is very logical Attribute to retrieve when using AWS::ServiceDiscovery::PublicDnsNamespace.

Consider a scenario, where you create AWS::ServiceDiscovery::PublicDnsNamespace as foo.bar.com, where bar.com is your HostedZone, and foo is NameSpace -> Subdomain mapping.

This will create new HostedZoneId in your Route53, managed by CloudMap, yet, it won't resolve publicly (Mind that it's Public Namespace with intention to be resolved) unless you add given new HostedZoneId NameServers to Apex HostedZone (bar.com) as NS entry.

### Other Details

Usage example currently:

```yaml
Resources:
CloudMapNameSpace:
Type: "AWS::ServiceDiscovery::PublicDnsNamespace"
Properties:
Name: !Sub "${AWS::Region}.dashboard.${ApexDomainName}"

CloudMapNamespaceOutput:
Type: Custom::NameServersOfCloudMapNamespace
Properties:
ServiceToken: !Ref CloudMapRegisterLambdaArn # Lambda returning Attribute NameServers
CloudMapNamespaceId: !Ref CloudMapNameSpace

CloudMapHostedZoneParentRecord:
Type: AWS::Route53::RecordSet
Properties:
HostedZoneId: !Ref DomainZoneId
Name: !GetAtt CloudMapNamespaceOutput.Name
ResourceRecords: !GetAtt CloudMapNamespaceOutput.NameServers
Type: NS
TTL: 60
```

Contributor guide

Open the contributing guide

Research direction

Start with the AWS::ServiceDiscovery::PublicDnsNamespace resource and its current Fn::GetAtt attributes, then compare the requested NameServers value with the YAML usage example. Confirm how the existing Custom::NameServersOfCloudMapNamespace Lambda obtains the value and what CloudFormation coverage change would expose it; done means NameServers can replace that custom-resource output.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws
Domain
cloud
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.