diff --git a/group_vars/ironic-compute_hosts.yml b/group_vars/ironic-compute_hosts.yml new file mode 100644 index 0000000000..8a54bf63dd --- /dev/null +++ b/group_vars/ironic-compute_hosts.yml @@ -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 diff --git a/group_vars/ironic_compute.yml b/group_vars/ironic_compute.yml deleted file mode 100644 index 4207d5c0c2..0000000000 --- a/group_vars/ironic_compute.yml +++ /dev/null @@ -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 diff --git a/group_vars/ironic_compute.yml b/group_vars/ironic_compute.yml new file mode 120000 index 0000000000..6d8aae380e --- /dev/null +++ b/group_vars/ironic_compute.yml @@ -0,0 +1 @@ +ironic-compute_hosts.yml \ No newline at end of file diff --git a/group_vars/kvm-compute_hosts.yml b/group_vars/kvm-compute_hosts.yml new file mode 100644 index 0000000000..62cace38c0 --- /dev/null +++ b/group_vars/kvm-compute_hosts.yml @@ -0,0 +1,16 @@ +--- +# Copyright 2017, Logan Vig +# +# 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 diff --git a/group_vars/lxd-compute_hosts.yml b/group_vars/lxd-compute_hosts.yml new file mode 100644 index 0000000000..ccd1d661f3 --- /dev/null +++ b/group_vars/lxd-compute_hosts.yml @@ -0,0 +1,16 @@ +--- +# Copyright 2017, Logan Vig +# +# 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 diff --git a/group_vars/powervm-compute_hosts.yml b/group_vars/powervm-compute_hosts.yml new file mode 100644 index 0000000000..96f6a8e51b --- /dev/null +++ b/group_vars/powervm-compute_hosts.yml @@ -0,0 +1,16 @@ +--- +# Copyright 2017, Logan Vig +# +# 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 diff --git a/group_vars/qemu-compute_hosts.yml b/group_vars/qemu-compute_hosts.yml new file mode 100644 index 0000000000..2ea3bef720 --- /dev/null +++ b/group_vars/qemu-compute_hosts.yml @@ -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 diff --git a/playbooks/inventory/env.d/nova.yml b/playbooks/inventory/env.d/nova.yml index 5d2af12adc..934315934f 100644 --- a/playbooks/inventory/env.d/nova.yml +++ b/playbooks/inventory/env.d/nova.yml @@ -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 diff --git a/releasenotes/notes/hypervisor-groups-9c9fb1d44b602af0.yaml b/releasenotes/notes/hypervisor-groups-9c9fb1d44b602af0.yaml new file mode 100644 index 0000000000..f1fe2aea0b --- /dev/null +++ b/releasenotes/notes/hypervisor-groups-9c9fb1d44b602af0.yaml @@ -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 diff --git a/tests/test_inventory.py b/tests/test_inventory.py index 360cc289f7..b620fdf00b 100644 --- a/tests/test_inventory.py +++ b/tests/test_inventory.py @@ -252,10 +252,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', @@ -274,6 +278,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',