Sha256: 92d979c06f72faf8cfe4062190123c2b32b72492a463d76f18c97d02602e316e

Contents?: true

Size: 1.28 KB

Versions: 24

Compression:

Stored size: 1.28 KB

Contents

class Ufo::Cfn::Stack::Builder::Resources
  class Dns < Base
    def build
      return unless vars[:create_route53]

      props = {
        Name: dns_name, # {stack_name}.yourdomain. dont forget the trailing period
        Comment: dns.comment,
        Type: dns.type, # CNAME
        TTL: dns.ttl, # 60 ttl has special casing
        ResourceRecords: [{"Fn::GetAtt": "Elb.DNSName"}]
      }
      # HostedZoneName: yourdomain. # dont forget the trailing period
      props[:HostedZoneName] = hosted_zone_name if hosted_zone_name
      props[:HostedZoneId] = dns.hosted_zone_id if dns.hosted_zone_id

      {
        Type: "AWS::Route53::RecordSet",
        Properties: props
      }
    end

  private
    def dns_name
      return unless dns.domain || dns.name
      name = dns.name # my.domain.com
      name ||= "#{@stack_name}.#{dns.domain}" # demo-web-dev.domain.com
      ensure_trailing_dot(name)
    end

    def hosted_zone_name
      return if dns.hosted_zone_id # hosted_zone_id takes precedence over hosted_zone_name
      return unless dns.domain || dns.host_zone_name
      name = dns.hosted_zone_name
      name ||= dns.domain
      ensure_trailing_dot(name)
    end

    def ensure_trailing_dot(s)
      s.ends_with?('.') ? s : "#{s}."
    end

    def dns
      Ufo.config.dns
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
ufo-6.3.1 lib/ufo/cfn/stack/builder/resources/dns.rb
ufo-6.3.0 lib/ufo/cfn/stack/builder/resources/dns.rb
ufo-6.2.5 lib/ufo/cfn/stack/builder/resources/dns.rb
ufo-6.2.4 lib/ufo/cfn/stack/builder/resources/dns.rb
ufo-6.2.3 lib/ufo/cfn/stack/builder/resources/dns.rb
ufo-6.2.2 lib/ufo/cfn/stack/builder/resources/dns.rb
ufo-6.2.1 lib/ufo/cfn/stack/builder/resources/dns.rb
ufo-6.2.0 lib/ufo/cfn/stack/builder/resources/dns.rb
ufo-6.1.5 lib/ufo/cfn/stack/builder/resources/dns.rb
ufo-6.1.4 lib/ufo/cfn/stack/builder/resources/dns.rb
ufo-6.1.3 lib/ufo/cfn/stack/builder/resources/dns.rb
ufo-6.1.2 lib/ufo/cfn/stack/builder/resources/dns.rb
ufo-6.1.1 lib/ufo/cfn/stack/builder/resources/dns.rb
ufo-6.1.0 lib/ufo/cfn/stack/builder/resources/dns.rb
ufo-6.0.9 lib/ufo/cfn/stack/builder/resources/dns.rb
ufo-6.0.8 lib/ufo/cfn/stack/builder/resources/dns.rb
ufo-6.0.7 lib/ufo/cfn/stack/builder/resources/dns.rb
ufo-6.0.6 lib/ufo/cfn/stack/builder/resources/dns.rb
ufo-6.0.5 lib/ufo/cfn/stack/builder/resources/dns.rb
ufo-6.0.4 lib/ufo/cfn/stack/builder/resources/dns.rb