Add breakout groups for hypervisor types

Different hypervisor types need different configs and we should be able
to represent these differences in the openstack_user_config.yml (conf.d)
and cover the basic needs using group_vars. This change introduces five
basic hypervisor groups which we have support for today.

  * ironic-compute_hosts
  * kvm-compute_hosts
  * lxd-compute_hosts
  * qemu-compute_hosts
  * powervm-compute_hosts

This gives deployers an explicit place to define hosts that will be
responsible for different compute workloads.

Change-Id: I1ca6a56287abf50c40a132ee5787224fc20f65df
Co-Authored-By: Logan V <logan2211@gmail.com>
Signed-off-by: Kevin Carter <kevin.carter@rackspace.com>
This commit is contained in:
Kevin Carter 2017-06-15 13:07:06 -05:00 committed by Kevin Carter (cloudnull)
parent c4105464e6
commit 774f6d0281
9 changed files with 126 additions and 16 deletions

View File

@ -0,0 +1,16 @@
---
# Copyright 2017, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
nova_virt_type: ironic

View File

@ -1,16 +0,0 @@
---
# Copyright 2016, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
nova_virt_type: ironic

View File

@ -0,0 +1 @@
ironic-compute_hosts.yml

View File

@ -0,0 +1,16 @@
---
# Copyright 2017, Logan Vig <logan2211@gmail.com>
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
nova_virt_type: kvm

View File

@ -0,0 +1,16 @@
---
# Copyright 2017, Logan Vig <logan2211@gmail.com>
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
nova_virt_type: lxd

View File

@ -0,0 +1,16 @@
---
# Copyright 2017, Logan Vig <logan2211@gmail.com>
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
nova_virt_type: powervm

View File

@ -0,0 +1,16 @@
---
# Copyright 2017, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
nova_virt_type: qemu

View File

@ -59,6 +59,10 @@ container_skel:
nova_compute_container:
belongs_to:
- compute_containers
- kvm-compute_containers
- lxd-compute_containers
- qemu-compute_containers
- powervm-compute_containers
contains:
- neutron_linuxbridge_agent
- neutron_openvswitch_agent
@ -99,3 +103,27 @@ physical_skel:
compute_hosts:
belongs_to:
- hosts
lxd-compute_containers:
belongs_to:
- all_containers
lxd-compute_hosts:
belongs_to:
- hosts
kvm-compute_containers:
belongs_to:
- all_containers
kvm-compute_hosts:
belongs_to:
- hosts
qemu-compute_containers:
belongs_to:
- all_containers
qemu-compute_hosts:
belongs_to:
- hosts
powervm-compute_containers:
belongs_to:
- all_containers
powervm-compute_hosts:
belongs_to:
- hosts

View File

@ -0,0 +1,9 @@
---
features:
- New hypervisor groups have been added allowing deployers to
better define their compute workloads. While the generic
"compute_hosts" group will still work explicit definitions
for compute hosts can now be defined using the
`ironic-compute_hosts`, `kvm-compute_hosts`, `lxd-compute_hosts`,
`qemu-compute_hosts`, and `powervm-compute_hosts` groups
accordingly

View File

@ -246,10 +246,14 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase):
'keystone',
'keystone_all',
'keystone_container',
'kvm-compute_containers',
'kvm-compute_hosts',
'log_all',
'log_containers',
'log_hosts',
'lxc_hosts',
'lxd-compute_containers',
'lxd-compute_hosts',
'magnum',
'magnum-infra_all',
'magnum-infra_containers',
@ -265,6 +269,10 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase):
'octavia-health-manager',
'octavia-infra_containers',
'octavia-infra_all',
'powervm-compute_containers',
'powervm-compute_hosts',
'qemu-compute_containers',
'qemu-compute_hosts',
'trove_all',
'trove_api',
'trove_conductor',