Designate Zone and RecordSet

https://blueprints.launchpad.net/heat/+spec/heat-designate-recordset-zone

Adds support for designate v2 RecordSet and Zone.

Problem description

OpenStack provides DNS as a service (designate) and more details are available at wiki https://wiki.openstack.org/wiki/Designate

In heat, resource plug-ins are not available for designate Zone and RecordSet. And this blueprint is created to provide these required plug-ins.

Proposed change

  • OS::Designate::Zone

Properties:

  • name:
    • required: True

    • type: String

    • update_allowed: False

    • description: Zone name

  • ttl:
    • required: False

    • type: int

    • update_allowed: True

    • description: Time To Live (Seconds) and is applicable only to Zone of type SECONDARY.

  • description:
    • required: False

    • type: String

    • update_allowed: True

    • description: Description of zone

  • email:
    • required: True

    • type: String

    • update_allowed: True

    • description: Zone email and is applicable only to Zone of type SECONDARY

  • type:
    • required: False

    • type: String

    • update_allowed: False

    • description: Zone type

    • default: ‘PRIMARY’

    • constraints: [‘PRIMARY’, ‘SECONDARY’]

  • masters
    • required: False

    • type: List

    • update_allowed: True

    • description: List of master name-servers and is applicable only to Zone of type SECONDARY

Attributes:

  • serial:
    • description: Zone serial number

    • type: String

  • OS::Designate::RecordSet

Properties:

  • zone:
    • required: True

    • type: String

    • update_allowed: False

    • description: DNS zone id or name

    • constraints: CustomConstrain(‘designate.zone’)

  • name:
    • required: True

    • type: String

    • update_allowed: False

    • description: DNS Name

  • type:
    • required: True

    • type: String

    • update_allowed: False

    • description: DNS record type

    • constraints:[A, AAAA, CNAME, MX, SRV, TXT, SPF, NS, PTR, SSHFP, SOA]

  • records:
    • required: True

    • type: List

    • update_allowed: True

    • description: DNS records

  • ttl:
    • required: False

    • type: int

    • update_allowed: True

    • description: DNS record Time To Live (Seconds)

  • description:
    • required: False

    • type: String

    • update_allowed: True

    • description: Description of DNS record

  • Custom Constraint ‘designate.zone’

    Validate the designate zone id or name

Alternatives

None

Implementation

Assignee(s)

Primary assignee:

kanagaraj-manickam rh-s

Milestones

Target Milestone for completion:

mitaka-1

Work Items

  • Implement proposed resource plug-ins and custom constraints

  • Add required test cases

  • Add sample templates in heat-templates

Dependencies

None