- id: opendaylight type: group role: [opendaylight] requires: [deploy_start] required_for: [deploy_end, primary-controller, controller] tasks: [hiera, setup_repositories, fuel_pkgs, globals, tools, logging, netconfig, odl_install] parameters: strategy: type: parallel - id: odl_install type: puppet version: 2.1.0 groups: [opendaylight] requires: [deploy_start] required_for: [openstack-network-start, odl_configure] requires: [hosts, firewall, globals, netconfig] condition: yaql_exp: changedAny($.network_metadata.vips.get('management'), $.opendaylight) parameters: puppet_manifest: puppet/manifests/odl-install.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 3000 # We remove override file, because 'odl_hiera_override' task is not reenterant and # cannot correctly handled data on subsequent calls - id: odl_remove_hiera type: puppet version: 2.1.0 groups: [primary-controller, controller, compute, opendaylight] required_for: [odl_hiera_override] condition: yaql_exp: &hiera_override > changedAny($.network_metadata.vips.get('management'), $.quantum_settings, $.opendaylight, $.neutron_advanced_configuration) parameters: puppet_manifest: puppet/manifests/remove-odl-override.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 30 - id: odl_hiera_override type: puppet groups: [primary-controller, controller, compute, opendaylight] version: 2.1.0 required_for: [netconfig] requires: [globals] condition: yaql_exp: *hiera_override parameters: puppet_manifest: puppet/manifests/hiera-override.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 120 - id: odl_configure type: puppet version: 2.1.0 groups: [primary-controller, controller] requires: [deploy_start, primary-cluster-haproxy, cluster-haproxy] required_for: [openstack-network-common-config, openstack-haproxy, openstack-network-end] cross-depends: - name: odl_install condition: yaql_exp: > changedAny($.network_metadata.vips, $.opendaylight, $.network_metadata.nodes.values().where($.node_roles.contains('opendaylight')).network_roles.management) parameters: puppet_manifest: puppet/manifests/odl-service.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 1400 - id: odl_sfc type: puppet version: 2.1.0 groups: [primary-controller] required_for: [openstack-network-common-config] requires: [openstack-network-start] condition: yaql_exp: $.opendaylight.enable_sfc and changedAny($.network_metadata.vips.get('management'), $.opendaylight) parameters: puppet_manifest: puppet/manifests/odl-sfc.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 120 - id: odl_vxgpe type: puppet version: 2.1.0 groups: [compute, compute-vmware] required_for: [openstack-network-common-config] requires: [openstack-network-start] parameters: puppet_manifest: puppet/manifests/odl-vxgpe.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 60 - id: openstack-network-common-config type: puppet version: 2.1.0 groups: [primary-controller, controller, compute] required_for: [openstack-network-end] requires: [openstack-network-start] condition: yaql_exp: > changedAny($.opendaylight, $.get('openstack_network'), $.debug, $.quantum_settings, $.neutron_advanced_configuration, $.rabbit, $.ceilometer, $.network_scheme, $.get('use_syslog'), $.get('use_stderr'), $.get('syslog_log_facility_neutron'), $.network_metadata.nodes.values().where( $.node_roles.any($.matches('controller'))).network_roles.select( $.get('mgmt/messaging')), $.get('amqp_hosts'), $.get('kombu_compression')) parameters: puppet_manifest: puppet/manifests/odl-common_config.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 1800 - id: primary-openstack-network-plugins-l2 type: puppet version: 2.1.0 groups: [primary-controller] required_for: [openstack-network-end] requires: [openstack-network-start, openstack-network-common-config, primary-openstack-network-server-config] condition: yaql_exp: &network_plugins_l2 > changedAny($.quantum, $.configuration, $.fqdn, $.get('neutron_primary_controller_roles'), $.get('neutron_compute_nodes'), $.quantum_settings, $.public_ssl, $.get('use_ssl'), $.get('region'), $.network_scheme, $.neutron_advanced_configuration) refresh_on: [neutron_agent_ovs] parameters: puppet_manifest: puppet/manifests/odl-ml2-configuration.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 1800 - id: openstack-network-plugins-l2 type: puppet version: 2.1.0 groups: [controller, compute] required_for: [openstack-network-end] requires: [openstack-network-start, openstack-network-common-config, openstack-network-server-config] condition: yaql_exp: *network_plugins_l2 cross-depends: - name: primary-openstack-network-plugins-l2 parameters: puppet_manifest: puppet/manifests/odl-ml2-configuration.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 1800 # We have two tracks here. # If user wants to use ODL to control L3 traffic # then we skip tasks which spawn neutron L3 agents # and move networks and router creation on the end. # In other case standard path is preserved, but additional # condition is added to tasks - id: primary-openstack-network-agents-l3 type: puppet version: 2.1.0 groups: [primary-controller] required_for: [openstack-network-end] requires: [openstack-network-start, openstack-network-networks, openstack-network-routers, primary-openstack-network-plugins-l2] refresh_on: [neutron_l3_agent_config] condition: yaql_exp: &network_agents_l3 > not $.opendaylight.enable_l3_odl and changedAny($.quantum, $.neutron_advanced_configuration, $.get('neutron_controller_roles'), $.get('neutron_compute_nodes'), $.debug, $.configuration, $.network_scheme, ('primary-controller' in $.roles)) parameters: puppet_manifest: /etc/puppet/modules/openstack_tasks/examples/openstack-network/agents/l3.pp puppet_modules: /etc/puppet/modules timeout: 1800 - id: openstack-network-agents-l3 type: puppet version: 2.1.0 groups: [controller, compute] required_for: [openstack-network-end] requires: [openstack-network-start, openstack-network-networks, openstack-network-routers, openstack-network-plugins-l2] condition: yaql_exp: *network_agents_l3 refresh_on: [neutron_l3_agent_config] cross-depends: - name: primary-openstack-network-plugins-l2 - name: primary-openstack-network-agents-l3 parameters: puppet_manifest: /etc/puppet/modules/openstack_tasks/examples/openstack-network/agents/l3.pp puppet_modules: /etc/puppet/modules timeout: 1800 # POST DEPLOYMENT # Additional task for routers when L3 HA is enabled # HA routers must be created on post-deployment step when all L3 agents are available - id: openstack-network-networks type: skipped groups: [primary-controller] - id: odl-openstack-network-networks type: puppet version: 2.1.0 role: [primary-controller] required_for: [post_deployment_end] requires: [post_deployment_start] condition: yaql_exp: changedAny($.access, $.quantum_settings, $.quantum) parameters: puppet_manifest: /etc/puppet/modules/openstack_tasks/examples/openstack-network/networks.pp puppet_modules: /etc/puppet/modules timeout: 1800 - id: openstack-network-routers type: skipped groups: [primary-controller] - id: odl-openstack-network-routers type: puppet version: 2.1.0 role: [primary-controller] requires: [post_deployment_start, odl-openstack-network-networks] required_for: [post_deployment_end] condition: yaql_exp: > not $.neutron_advanced_configuration.neutron_l3_ha and changed($.neutron_advanced_configuration.neutron_l3_ha) parameters: puppet_manifest: /etc/puppet/modules/openstack_tasks/examples/openstack-network/routers.pp puppet_modules: /etc/puppet/modules timeout: 1800 - id: openstack-network-routers-ha type: puppet version: 2.1.0 role: [primary-controller] condition: yaql_exp: > not $.opendaylight.enable_l3_odl and $.neutron_advanced_configuration.neutron_l3_ha and changed($.neutron_advanced_configuration.neutron_l3_ha) required_for: [post_deployment_end] requires: [post_deployment_start] parameters: puppet_manifest: /etc/puppet/modules/openstack_tasks/examples/openstack-network/routers.pp puppet_modules: /etc/puppet/modules timeout: 1800 - id: configure_default_route type: puppet version: 2.1.0 role: [primary-mongo, mongo] requires: [post_deployment_start] required_for: [post_deployment_end] condition: yaql_exp: > not $.opendaylight.enable_l3_odl and changedAny($.network_scheme, $.network_metadata.vips.get('management')) parameters: puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/netconfig/configure_default_route.pp puppet_modules: /etc/puppet/modules timeout: 3600 - id: odl_dashboard_registration type: puppet version: 2.1.0 role: [primary-controller] required_for: [post_deployment_end] requires: [post_deployment_start] condition: yaql_exp: > changedAny($.deployment_id, $.master_ip, $.opendaylight, $.network_metadata.vips.get('public', {}).get('ipaddr')) parameters: puppet_manifest: puppet/manifests/odl-dashboard.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 180