heat_template_version: wallaby

description: >
  OpenStack Designate base service. Shared for all Designate services

parameters:
  ServiceData:
    default: {}
    description: Dictionary packing service data
    type: json
  ServiceNetMap:
    default: {}
    description: Mapping of service_name -> network name. Typically set
                 via parameter_defaults in the resource registry. Use
                 parameter_merge_strategies to merge it with the defaults.
    type: json
  RoleName:
    default: ''
    description: Role name on which the service is applied
    type: string
  RoleParameters:
    default: {}
    description: Parameters specific to the role
    type: json
  EndpointMap:
    default: {}
    description: Mapping of service endpoint -> protocol. Typically set
                 via parameter_defaults in the resource registry.
    type: json
  Debug:
    type: boolean
    default: false
    description: Set to True to enable debugging on all services.
  DesignateDebug:
    default: false
    description: Set to True to enable debugging Designate services.
    type: boolean
  EnableConfigPurge:
    type: boolean
    default: false
    description: >
        Remove configuration that is not generated by TripleO. Used to avoid
        configuration remnants after upgrades.
  NotificationDriver:
    type: comma_delimited_list
    default: 'noop'
    description: Driver or drivers to handle sending notifications.
  DesignateRpcResponseTimeout:
    default: 60
    description: Designate's RPC response timeout, in seconds.
    type: number
  DesignateEnableNeutronIntegration:
    default: true
    description: Enable configuring neutron to use Designate managed DNS
                 services.
    type: boolean

outputs:
  role_data:
    description: Base role data for Designate services
    value:
      service_name: designate_base
      config_settings:
        designate::logging::debug:
         if:
         - {get_param: DesignateDebug}
         - true
         - {get_param: Debug }
        designate::purge_config: {get_param: EnableConfigPurge}
        designate::notification_driver: {get_param: NotificationDriver}
        designate::rpc_response_timeout: {get_param: DesignateRpcResponseTimeout}
        designate::db::sync_db: false
        designate_enable_neutron_integration: {get_param: DesignateEnableNeutronIntegration}