diff --git a/README.md b/README.md index 36c8a1c..d710602 100644 --- a/README.md +++ b/README.md @@ -29,9 +29,10 @@ It can also allow cloud operators to move controllers into different racks (see ## Compatibility -| Plugin version | Fuel version | -| -------------- | ------------ | -| 1.x.x | Fuel-8.x | +| Plugin version | Branch | Fuel version | +| -------------- | ------------- | ------------ | +| 1.x.x | stable/8.0 | Fuel-8.x | +| 2.x.x | stable/mitaka | Fuel-9.x | ## How to build plugin diff --git a/deployment_scripts/puppet/manifests/ovs_to_ns_ocf.pp b/deployment_scripts/puppet/manifests/ovs_to_ns_ocf.pp index 39ee409..526af98 100644 --- a/deployment_scripts/puppet/manifests/ovs_to_ns_ocf.pp +++ b/deployment_scripts/puppet/manifests/ovs_to_ns_ocf.pp @@ -7,59 +7,9 @@ $floating_br = pick($network_scheme['roles']['neutron/floating'], 'br-floatin $floating_gw_if = pick($external_lb['floating_gw_if'], 'exlb-float-gw') if $external_lb['external_public_vip'] and $external_lb['enable_fake_floating'] { - $service_name = 'p_exlb_floating_port' - $primitive_type = 'ovs_to_ns_port' - $complex_type = 'clone' - $ms_metadata = { - 'interleave' => true, - } - $metadata = { - 'migration-threshold' => 'INFINITY', - 'failure-timeout' => '120', - } - $parameters = { - 'ns' => 'vrouter', - 'ovs_interface' => $floating_br, - 'namespace_interface' => $floating_gw_if, - 'namespace_ip' => $external_lb['fake_floating_gw'], - 'namespace_cidr' => $external_lb['fake_floating_cidr'], - } - $operations = { - 'monitor' => { - 'interval' => '60', - 'timeout' => '120' - }, - 'start' => { - 'timeout' => '30' - }, - 'stop' => { - 'timeout' => '30' - }, - } - file {'/usr/lib/ocf/resource.d/fuel/ovs_to_ns_port': ensure => file, mode => '0755', source => "puppet:///modules/external_loadbalancer/ovs_to_ns_port", } - - service { $service_name : - ensure => 'running', - enable => true, - hasstatus => true, - hasrestart => true, - provider => 'pacemaker', - require => File['/usr/lib/ocf/resource.d/fuel/ovs_to_ns_port'], - } - - pacemaker_wrappers::service { $service_name : - primitive_type => $primitive_type, - parameters => $parameters, - metadata => $metadata, - operations => $operations, - ms_metadata => $ms_metadata, - complex_type => $complex_type, - prefix => false, - require => File['/usr/lib/ocf/resource.d/fuel/ovs_to_ns_port'], - } } diff --git a/deployment_scripts/puppet/manifests/ovs_to_ns_service.pp b/deployment_scripts/puppet/manifests/ovs_to_ns_service.pp new file mode 100644 index 0000000..1b64f95 --- /dev/null +++ b/deployment_scripts/puppet/manifests/ovs_to_ns_service.pp @@ -0,0 +1,57 @@ +notice('MODULAR: external_loadbalancer/ovs_to_ns_service.pp') + +$plugin_name = 'external_loadbalancer' +$external_lb = hiera("$plugin_name") +$network_scheme = hiera_hash("network_scheme", {}) +$floating_br = pick($network_scheme['roles']['neutron/floating'], 'br-floating') +$floating_gw_if = pick($external_lb['floating_gw_if'], 'exlb-float-gw') + +if $external_lb['external_public_vip'] and $external_lb['enable_fake_floating'] { + $service_name = 'p_exlb_floating_port' + $primitive_type = 'ovs_to_ns_port' + $complex_type = 'clone' + $complex_metadata = { + 'interleave' => true, + } + $metadata = { + 'migration-threshold' => 'INFINITY', + 'failure-timeout' => '120', + } + $parameters = { + 'ns' => 'vrouter', + 'ovs_interface' => $floating_br, + 'namespace_interface' => $floating_gw_if, + 'namespace_ip' => $external_lb['fake_floating_gw'], + 'namespace_cidr' => $external_lb['fake_floating_cidr'], + } + $operations = { + 'monitor' => { + 'interval' => '60', + 'timeout' => '120' + }, + 'start' => { + 'timeout' => '30' + }, + 'stop' => { + 'timeout' => '30' + }, + } + + service { $service_name : + ensure => 'running', + enable => true, + hasstatus => true, + hasrestart => true, + provider => 'pacemaker', + } + + pacemaker::service { $service_name : + primitive_type => $primitive_type, + parameters => $parameters, + metadata => $metadata, + operations => $operations, + complex_metadata => $ms_metadata, + complex_type => $complex_type, + prefix => false, + } +} diff --git a/deployment_tasks.yaml b/deployment_tasks.yaml index 1afcf15..9650094 100644 --- a/deployment_tasks.yaml +++ b/deployment_tasks.yaml @@ -1,43 +1,68 @@ - id: external-lb-hiera + version: 2.0.0 type: puppet - role: '*' - requires: [pre_hiera_config] - required_for: [pre_deployment_end] + groups: ['/.*/'] + requires: [hiera] + required_for: [hiera-update] parameters: puppet_manifest: puppet/manifests/create_hiera_config.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 360 -- id: external-lb-ovs-to-ns-port +- id: hiera-update + version: 2.0.0 + type: puppet + groups: ['/.*/'] + requires: [external-lb-hiera] + required_for: [globals] + parameters: + puppet_manifest: /etc/puppet/modules/osnailyfacter/modular/hiera/hiera.pp + puppet_modules: /etc/puppet/modules + timeout: 360 + +- id: external-lb-ovs-to-ns-port-ocf + version: 2.0.0 type: puppet groups: [primary-controller, controller] - requires: [deploy_start, netconfig, cluster-vrouter] - required_for: [deploy_end] + requires: [fuel_pkgs] + required_for: [globals] parameters: puppet_manifest: puppet/manifests/ovs_to_ns_ocf.pp puppet_modules: puppet/modules:/etc/puppet/modules + timeout: 120 + +- id: external-lb-ovs-to-ns-port-service + version: 2.0.0 + type: puppet + groups: [primary-controller, controller] + requires: [deploy_start, cluster-vrouter] + required_for: [deploy_end] + parameters: + puppet_manifest: puppet/manifests/ovs_to_ns_service.pp + puppet_modules: puppet/modules:/etc/puppet/modules timeout: 600 # This is a workaround to disable adding record to hosts file if we use FQDN external host - id: disable-public-ssl-hash + version: 2.0.0 type: puppet groups: [primary-controller, controller] requires: [ssl-add-trust-chain] required_for: [ssl-dns-setup] - condition: "settings:public_ssl.horizon.value == true or settings:public_ssl.services.value == true" + condition: "settings:public_ssl.horizon == true or settings:public_ssl.services == true" parameters: puppet_manifest: puppet/manifests/disable_public_ssl_hash.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 60 - id: enable-public-ssl-hash + version: 2.0.0 type: puppet groups: [primary-controller, controller] requires: [ssl-dns-setup] required_for: [hosts] - condition: "settings:public_ssl.horizon.value == true or settings:public_ssl.services.value == true" + condition: "settings:public_ssl.horizon == true or settings:public_ssl.services == true" parameters: puppet_manifest: puppet/manifests/enable_public_ssl_hash.pp puppet_modules: puppet/modules:/etc/puppet/modules timeout: 60 - diff --git a/metadata.yaml b/metadata.yaml index 34b13c0..41b4367 100644 --- a/metadata.yaml +++ b/metadata.yaml @@ -1,8 +1,8 @@ name: external_loadbalancer title: External load-balancer -version: 1.0.0 +version: 2.0.0 description: Enable to use external load-balancer -fuel_version: ['8.0'] +fuel_version: ['9.0'] licenses: ['Apache License, Version 2.0'] authors: - 'Aleksandr Didenko ' @@ -10,14 +10,14 @@ homepage: 'https://github.com/openstack/fuel-plugin-external-lb' groups: ['network'] releases: - os: ubuntu - version: liberty-8.0 + version: mitaka-9.0 mode: ['ha'] deployment_scripts_path: deployment_scripts/ repository_path: repositories/ubuntu - os: centos - version: liberty-8.0 + version: mitaka-9.0 mode: ['ha'] deployment_scripts_path: deployment_scripts/ repository_path: repositories/centos -package_version: '3.0.0' +package_version: '4.0.0' is_hotpluggable: false