heat_template_version: queens description: > OpenStack Neutron DHCP agent configured with Puppet 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. This mapping overrides those in ServiceNetMapDefaults. type: json Debug: type: boolean default: false description: Set to True to enable debugging on all services. DefaultPasswords: default: {} 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 NeutronEnableMetadataNetwork: default: false description: If True, DHCP provide metadata network. Requires either IsolatedMetadata or ForceMetadata parameters to also be True. type: boolean NeutronEnableIsolatedMetadata: default: false description: If True, DHCP provide metadata route to VM. type: boolean NeutronEnableForceMetadata: default: false description: If True, DHCP always provides metadata route to VM. type: boolean MonitoringSubscriptionNeutronDhcp: default: 'overcloud-neutron-dhcp' type: string NeutronDhcpAgentDebug: default: '' description: Set to True to enable debugging for Neutron DHCP agent. type: string constraints: - allowed_values: [ '', 'true', 'True', 'TRUE', 'false', 'False', 'FALSE'] NeutronDhcpAgentLoggingSource: type: json default: tag: openstack.neutron.agent.dhcp path: /var/log/neutron/dhcp-agent.log NeutronDhcpAgentDnsmasqDnsServers: default: [] description: List of servers to use as dnsmasq forwarders type: comma_delimited_list NeutronInterfaceDriver: default: 'neutron.agent.linux.interface.OVSInterfaceDriver' description: Neutron DHCP Agent interface driver type: string EnableInternalTLS: type: boolean default: false InternalTLSCAFile: default: '/etc/ipa/ca.crt' type: string description: Specifies the default CA cert to use if TLS is used for services in the internal network. NeutronDhcpOvsIntegrationBridge: default: '' type: string description: Name of Open vSwitch bridge to use conditions: service_debug_unset: {equals: [{get_param: NeutronDhcpAgentDebug}, '']} internal_tls_enabled: {equals: [{get_param: EnableInternalTLS}, true]} dhcp_ovs_intergation_bridge_unset: {equals: [{get_param: NeutronDhcpOvsIntegrationBridge}, '']} resources: NeutronBase: type: ./neutron-base.yaml properties: ServiceData: {get_param: ServiceData} ServiceNetMap: {get_param: ServiceNetMap} DefaultPasswords: {get_param: DefaultPasswords} EndpointMap: {get_param: EndpointMap} RoleName: {get_param: RoleName} RoleParameters: {get_param: RoleParameters} outputs: role_data: description: Role data for the Neutron DHCP agent service. value: service_name: neutron_dhcp monitoring_subscription: {get_param: MonitoringSubscriptionNeutronDhcp} config_settings: map_merge: - get_attr: [NeutronBase, role_data, config_settings] - neutron::agents::dhcp::enable_isolated_metadata: {get_param: NeutronEnableIsolatedMetadata} neutron::agents::dhcp::enable_force_metadata: {get_param: NeutronEnableForceMetadata} neutron::agents::dhcp::enable_metadata_network: {get_param: NeutronEnableMetadataNetwork} neutron::agents::dhcp::dnsmasq_dns_servers: {get_param: NeutronDhcpAgentDnsmasqDnsServers} neutron::agents::dhcp::interface_driver: {get_param: NeutronInterfaceDriver} neutron::agents::dhcp::debug: if: - service_debug_unset - {get_param: Debug} - {get_param: NeutronDhcpAgentDebug} tripleo.neutron_dhcp.firewall_rules: '115 neutron dhcp input': proto: 'udp' dport: 67 '116 neutron dhcp output': proto: 'udp' chain: 'OUTPUT' dport: 68 - if: - internal_tls_enabled - neutron::agents::dhcp::ovsdb_agent_ssl_key_file: '/etc/pki/tls/private/neutron.key' neutron::agents::dhcp::ovsdb_agent_ssl_cert_file: '/etc/pki/tls/certs/neutron.crt' neutron::agents::dhcp::ovsdb_agent_ssl_ca_file: {get_param: InternalTLSCAFile} generate_service_certificates: true tripleo::profile::base::neutron::certificate_specs: service_certificate: '/etc/pki/tls/certs/neutron.crt' service_key: '/etc/pki/tls/private/neutron.key' hostname: str_replace: template: "%{hiera('fqdn_NETWORK')}" params: NETWORK: {get_param: [ServiceNetMap, NeutronApiNetwork]} principal: str_replace: template: "neutron/%{hiera('fqdn_NETWORK')}" params: NETWORK: {get_param: [ServiceNetMap, NeutronApiNetwork]} postsave_cmd: "/usr/bin/certmonger-neutron-dhcpd-refresh.sh" - {} - if: - dhcp_ovs_intergation_bridge_unset - {} - neutron::agents::dhcp::ovs_integration_bridge: {get_param: NeutronDhcpOvsIntegrationBridge} service_config_settings: fluentd: tripleo_fluentd_groups_neutron_dhcp: - neutron tripleo_fluentd_sources_neutron_dhcp: - {get_param: NeutronDhcpAgentLoggingSource} step_config: | include tripleo::profile::base::neutron::dhcp upgrade_tasks: - name: Check if neutron_dhcp_agent is deployed command: systemctl is-enabled neutron-dhcp-agent tags: common ignore_errors: True register: neutron_dhcp_agent_enabled - name: "PreUpgrade step0,validation: Check service neutron-dhcp-agent is running" shell: /usr/bin/systemctl show 'neutron-dhcp-agent' --property ActiveState | grep '\bactive\b' when: - step|int == 0 - neutron_dhcp_agent_enabled.rc == 0 tags: validation - name: Stop neutron_dhcp service when: - step|int == 1 - neutron_dhcp_agent_enabled.rc == 0 service: name=neutron-dhcp-agent state=stopped metadata_settings: get_attr: [NeutronBase, role_data, metadata_settings]