diff --git a/etc/openstack_deploy/conf.d/ironic.yml.aio b/etc/openstack_deploy/conf.d/ironic.yml.aio index 774e772bc0..2703236031 100644 --- a/etc/openstack_deploy/conf.d/ironic.yml.aio +++ b/etc/openstack_deploy/conf.d/ironic.yml.aio @@ -2,3 +2,9 @@ ironic-infra_hosts: aio1: ip: 172.29.236.100 + +# Ironic compute hosts. These compute hosts will be used to +# facilitate ironic's interactions through nova. +ironic-compute_hosts: + aio1: + ip: 172.29.236.100 diff --git a/etc/openstack_deploy/openstack_user_config.yml.example b/etc/openstack_deploy/openstack_user_config.yml.example index eacafba3b3..55049f4d1a 100644 --- a/etc/openstack_deploy/openstack_user_config.yml.example +++ b/etc/openstack_deploy/openstack_user_config.yml.example @@ -397,7 +397,7 @@ # # -------- # -# Level: compute_hosts (required) +# Level: compute_hosts (optional) # List of target hosts on which to deploy the nova compute service. Recommend # one minimum target host for this service. Typically contains target hosts # that do not reside in other levels. @@ -419,6 +419,28 @@ # # -------- # +# Level: ironic-compute_hosts (optional) +# List of target hosts on which to deploy the nova compute service for Ironic. +# Recommend one minimum target host for this service. Typically contains target +# hosts that do not reside in other levels. +# +# Level: (required, string) +# Hostname of a target host. +# +# Option: ip (required, string) +# IP address of this target host, typically the IP address assigned to +# the management bridge. +# +# Example: +# +# Define an OpenStack compute host: +# +# ironic-compute_hosts: +# ironic-infra1: +# ip: 172.29.236.121 +# +# -------- +# # Level: storage-infra_hosts (required) # List of target hosts on which to deploy the cinder API. Recommend three # minimum target hosts for this service. Typically contains the same target diff --git a/playbooks/inventory/env.d/ironic.yml b/playbooks/inventory/env.d/ironic.yml index 67d4b06dae..659aa80c08 100644 --- a/playbooks/inventory/env.d/ironic.yml +++ b/playbooks/inventory/env.d/ironic.yml @@ -13,6 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. + component_skel: ironic_api: belongs_to: @@ -23,6 +24,10 @@ component_skel: ironic_server: belongs_to: - ironic_servers + ironic_compute: + belongs_to: + - nova_all + container_skel: ironic_api_container: @@ -47,6 +52,18 @@ container_skel: properties: is_metal: true service_name: ironic + ironic_compute_container: + belongs_to: + - ironic-compute_containers + contains: + - ironic_compute + - nova_compute + - nova_scheduler + - neutron_linuxbridge_agent + - neutron_openvswitch_agent + properties: + is_metal: false + service_name: nova physical_skel: @@ -62,3 +79,9 @@ physical_skel: ironic-server_hosts: belongs_to: - hosts + ironic-compute_containers: + belongs_to: + - all_containers + ironic-compute_hosts: + belongs_to: + - hosts diff --git a/playbooks/inventory/group_vars/ironic_compute.yml b/playbooks/inventory/group_vars/ironic_compute.yml new file mode 100644 index 0000000000..4207d5c0c2 --- /dev/null +++ b/playbooks/inventory/group_vars/ironic_compute.yml @@ -0,0 +1,16 @@ +--- +# 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/tests/test_inventory.py b/tests/test_inventory.py index 0a95e35d6a..706dcc6d98 100644 --- a/tests/test_inventory.py +++ b/tests/test_inventory.py @@ -209,6 +209,11 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase): 'ironic_server', 'ironic_server_container', 'ironic_servers', + 'ironic_compute', + 'ironic_compute_container', + 'ironic-compute_containers', + 'ironic-compute_all', + 'ironic-compute_hosts', 'keystone', 'keystone_all', 'keystone_container',