Merge "Add Ironic multitenancy support"
This commit is contained in:
commit
a5abfc28aa
|
@ -37,7 +37,7 @@
|
||||||
- id: keystone-openrc-generate
|
- id: keystone-openrc-generate
|
||||||
type: puppet
|
type: puppet
|
||||||
version: 2.2.0
|
version: 2.2.0
|
||||||
tags: [primary-controller, controller, primary-neutron, neutron]
|
tags: [primary-controller, controller, primary-neutron, neutron, ironic]
|
||||||
requires: [openrc-delete, primary-keystone, keystone]
|
requires: [openrc-delete, primary-keystone, keystone]
|
||||||
cross-depends:
|
cross-depends:
|
||||||
- name: openrc-delete
|
- name: openrc-delete
|
||||||
|
|
|
@ -148,10 +148,10 @@
|
||||||
|
|
||||||
- id: ironic-conductor
|
- id: ironic-conductor
|
||||||
type: puppet
|
type: puppet
|
||||||
version: 2.1.0
|
version: 2.2.0
|
||||||
groups: [ironic]
|
groups: [ironic]
|
||||||
required_for: [deploy_end]
|
required_for: [deploy_end]
|
||||||
requires: [hosts, firewall]
|
requires: [hosts, firewall, keystone-openrc-generate]
|
||||||
condition:
|
condition:
|
||||||
yaql_exp: >
|
yaql_exp: >
|
||||||
$.ironic.enabled and changedAny($.network_scheme, $.ironic,
|
$.ironic.enabled and changedAny($.network_scheme, $.ironic,
|
||||||
|
@ -167,6 +167,8 @@
|
||||||
- name: ironic-api
|
- name: ironic-api
|
||||||
- name: ironic-db
|
- name: ironic-db
|
||||||
- name: /^(primary-)?rabbitmq$/
|
- name: /^(primary-)?rabbitmq$/
|
||||||
|
- name: openstack-network-networks
|
||||||
|
role: ["/^(primary-)?neutron$/"]
|
||||||
parameters:
|
parameters:
|
||||||
puppet_manifest: /etc/puppet/modules/openstack_tasks/examples/roles/ironic-conductor.pp
|
puppet_manifest: /etc/puppet/modules/openstack_tasks/examples/roles/ironic-conductor.pp
|
||||||
puppet_modules: /etc/puppet/modules
|
puppet_modules: /etc/puppet/modules
|
||||||
|
|
|
@ -88,10 +88,18 @@ class openstack_tasks::openstack_network::networks {
|
||||||
$baremetal_router_external = dig44($nets, ['baremetal', 'L2', 'router_ext'])
|
$baremetal_router_external = dig44($nets, ['baremetal', 'L2', 'router_ext'])
|
||||||
$baremetal_shared = dig44($nets, ['baremetal', 'shared'], false)
|
$baremetal_shared = dig44($nets, ['baremetal', 'shared'], false)
|
||||||
|
|
||||||
|
$ironic_settings_hash = hiera_hash('ironic_settings', {})
|
||||||
|
$ironic_provision_network = dig44($ironic_settings_hash, ['ironic_provision_network'], false)
|
||||||
|
if $ironic_provision_network {
|
||||||
|
$baremetal_provider_network_type = 'vlan'
|
||||||
|
} else {
|
||||||
|
$baremetal_provider_network_type = 'flat'
|
||||||
|
}
|
||||||
|
|
||||||
neutron_network { 'baremetal' :
|
neutron_network { 'baremetal' :
|
||||||
ensure => 'present',
|
ensure => 'present',
|
||||||
provider_physical_network => $baremetal_physnet,
|
provider_physical_network => $baremetal_physnet,
|
||||||
provider_network_type => 'flat',
|
provider_network_type => $baremetal_provider_network_type,
|
||||||
provider_segmentation_id => $baremetal_segment_id,
|
provider_segmentation_id => $baremetal_segment_id,
|
||||||
router_external => $baremetal_router_external,
|
router_external => $baremetal_router_external,
|
||||||
tenant_name => $tenant_name,
|
tenant_name => $tenant_name,
|
||||||
|
|
|
@ -107,9 +107,16 @@ class openstack_tasks::roles::ironic_conductor {
|
||||||
class { '::ironic::client': }
|
class { '::ironic::client': }
|
||||||
|
|
||||||
class { '::ironic::conductor':
|
class { '::ironic::conductor':
|
||||||
api_url => "http://${baremetal_vip}:6385",
|
api_url => "http://${baremetal_vip}:6385",
|
||||||
enabled_drivers => ['fuel_ssh', 'fuel_ipmitool', 'fake', 'fuel_libvirt'],
|
enabled_drivers => ['fuel_ssh', 'fuel_ipmitool', 'fake', 'fuel_libvirt'],
|
||||||
swift_temp_url_key => $ironic_swift_tempurl_key,
|
swift_temp_url_key => $ironic_swift_tempurl_key,
|
||||||
|
cleaning_network_name => 'baremetal',
|
||||||
|
provisioning_network_name => 'baremetal',
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
class { '::ironic::drivers::interfaces':
|
||||||
|
enabled_network_interfaces => ['noop', 'flat', 'neutron']
|
||||||
}
|
}
|
||||||
|
|
||||||
class { '::ironic::drivers::pxe':
|
class { '::ironic::drivers::pxe':
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
type: puppet
|
type: puppet
|
||||||
version: 2.2.0
|
version: 2.2.0
|
||||||
tags: [primary-controller, controller, compute, cinder, primary-mongo, mongo, ceph-osd, virt,
|
tags: [primary-controller, controller, compute, cinder, primary-mongo, mongo, ceph-osd, virt,
|
||||||
primary-keystone, keystone]
|
primary-keystone, keystone, ironic]
|
||||||
requires: [firewall]
|
requires: [firewall]
|
||||||
condition:
|
condition:
|
||||||
yaql_exp: >
|
yaql_exp: >
|
||||||
|
@ -22,7 +22,7 @@
|
||||||
type: puppet
|
type: puppet
|
||||||
version: 2.2.0
|
version: 2.2.0
|
||||||
tags: [primary-controller, controller, compute, cinder, primary-mongo, mongo, ceph-osd, virt,
|
tags: [primary-controller, controller, compute, cinder, primary-mongo, mongo, ceph-osd, virt,
|
||||||
primary-keystone, keystone]
|
primary-keystone, keystone, ironic]
|
||||||
requires: [firewall, ssl-keys-saving]
|
requires: [firewall, ssl-keys-saving]
|
||||||
condition:
|
condition:
|
||||||
yaql_exp: &public_ssl_enabled >
|
yaql_exp: &public_ssl_enabled >
|
||||||
|
@ -42,7 +42,7 @@
|
||||||
version: 2.1.0
|
version: 2.1.0
|
||||||
groups: [primary-controller, controller, compute, cinder, primary-mongo, mongo, ceph-osd, virt,
|
groups: [primary-controller, controller, compute, cinder, primary-mongo, mongo, ceph-osd, virt,
|
||||||
primary-rabbitmq, rabbitmq, primary-database, database,
|
primary-rabbitmq, rabbitmq, primary-database, database,
|
||||||
primary-keystone, keystone, primary-neutron, neutron]
|
primary-keystone, keystone, primary-neutron, neutron, ironic]
|
||||||
requires: [firewall, ssl-add-trust-chain]
|
requires: [firewall, ssl-add-trust-chain]
|
||||||
condition:
|
condition:
|
||||||
yaql_exp: *public_ssl_enabled
|
yaql_exp: *public_ssl_enabled
|
||||||
|
|
|
@ -91,11 +91,18 @@ describe manifest do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'Ironic baremetal network', :if => nets.has_key?('baremetal') do
|
context 'Ironic baremetal network', :if => nets.has_key?('baremetal') do
|
||||||
|
let(:baremetal_provider_network_type) do
|
||||||
|
if Noop.hiera_structure('ironic_settings/ironic_provision_network', false)
|
||||||
|
'vlan'
|
||||||
|
else
|
||||||
|
'flat'
|
||||||
|
end
|
||||||
|
end
|
||||||
it 'should create baremetal network' do
|
it 'should create baremetal network' do
|
||||||
should contain_neutron_network('baremetal').with(
|
should contain_neutron_network('baremetal').with(
|
||||||
'ensure' => 'present',
|
'ensure' => 'present',
|
||||||
'provider_physical_network' => nets['baremetal']['L2']['physnet'],
|
'provider_physical_network' => nets['baremetal']['L2']['physnet'],
|
||||||
'provider_network_type' => 'flat',
|
'provider_network_type' => baremetal_provider_network_type,
|
||||||
'provider_segmentation_id' => nets['baremetal']['L2']['segment_id'],
|
'provider_segmentation_id' => nets['baremetal']['L2']['segment_id'],
|
||||||
'router_external' => nets['baremetal']['L2']['router_ext'],
|
'router_external' => nets['baremetal']['L2']['router_ext'],
|
||||||
'shared' => nets['baremetal']['shared'],
|
'shared' => nets['baremetal']['shared'],
|
||||||
|
|
|
@ -38,11 +38,19 @@ describe manifest do
|
||||||
|
|
||||||
it 'should declare ironic::conductor class correctly' do
|
it 'should declare ironic::conductor class correctly' do
|
||||||
should contain_class('ironic::conductor').with(
|
should contain_class('ironic::conductor').with(
|
||||||
'api_url' => "http://#{baremetal_vip}:6385",
|
'api_url' => "http://#{baremetal_vip}:6385",
|
||||||
'enabled_drivers' => ['fuel_ssh', 'fuel_ipmitool', 'fake', 'fuel_libvirt'],
|
'enabled_drivers' => ['fuel_ssh', 'fuel_ipmitool', 'fake', 'fuel_libvirt'],
|
||||||
|
'cleaning_network_name' => "baremetal",
|
||||||
|
'provisioning_network_name' => "baremetal",
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'should declare ironic::drivers:interfaces correctly' do
|
||||||
|
should contain_class('ironic::drivers::interfaces').with(
|
||||||
|
'enabled_network_interfaces' => ['noop', 'flat', 'neutron']
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
it 'should configure the database connection string' do
|
it 'should configure the database connection string' do
|
||||||
if facts[:os_package_type] == 'debian'
|
if facts[:os_package_type] == 'debian'
|
||||||
extra_params = '?charset=utf8&read_timeout=60'
|
extra_params = '?charset=utf8&read_timeout=60'
|
||||||
|
|
Loading…
Reference in New Issue