Add container for nova-compute-ironic

Implements blueprint ironic-compute-container

Change-Id: I110bf3aa94bdfd33038ed39d78bd40ea30b13e57
This commit is contained in:
Andrey Shestakov 2015-12-25 18:07:41 +02:00
parent e8ad7488f6
commit c779511511
8 changed files with 70 additions and 7 deletions

View File

@ -99,6 +99,9 @@ nova
[nova-spicehtml5proxy:children] [nova-spicehtml5proxy:children]
nova nova
[nova-compute-ironic:children]
nova
# Neutron # Neutron
[neutron-server:children] [neutron-server:children]
neutron neutron

View File

@ -23,7 +23,7 @@
command: docker exec -t kolla_ansible /usr/bin/ansible localhost command: docker exec -t kolla_ansible /usr/bin/ansible localhost
-m kolla_keystone_user -m kolla_keystone_user
-a "project=service -a "project=service
user=ironic user={{ ironic_keystone_user }}
password={{ ironic_keystone_password }} password={{ ironic_keystone_password }}
role=admin role=admin
region_name={{ openstack_region_name }} region_name={{ openstack_region_name }}

View File

@ -61,6 +61,9 @@ nova_data_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docke
nova_data_tag: "{{ openstack_release }}" nova_data_tag: "{{ openstack_release }}"
nova_data_image_full: "{{ nova_data_image }}:{{ nova_data_tag }}" nova_data_image_full: "{{ nova_data_image }}:{{ nova_data_tag }}"
nova_compute_ironic_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/{{ kolla_base_distro }}-{{ kolla_install_type }}-nova-compute-ironic"
nova_compute_ironic_tag: "{{ openstack_release }}"
nova_compute_ironic_image_full: "{{ nova_compute_ironic_image }}:{{ nova_compute_ironic_tag }}"
#################### ####################
# Openstack # Openstack

View File

@ -25,6 +25,7 @@
with_items: with_items:
- "nova-api" - "nova-api"
- "nova-compute" - "nova-compute"
- "nova-compute-ironic"
- "nova-conductor" - "nova-conductor"
- "nova-consoleauth" - "nova-consoleauth"
- "nova-libvirt" - "nova-libvirt"
@ -39,6 +40,7 @@
with_items: with_items:
- "nova-api" - "nova-api"
- "nova-compute" - "nova-compute"
- "nova-compute-ironic"
- "nova-conductor" - "nova-conductor"
- "nova-consoleauth" - "nova-consoleauth"
- "nova-libvirt" - "nova-libvirt"
@ -61,6 +63,7 @@
with_items: with_items:
- "nova-api" - "nova-api"
- "nova-compute" - "nova-compute"
- "nova-compute-ironic"
- "nova-conductor" - "nova-conductor"
- "nova-consoleauth" - "nova-consoleauth"
- "nova-novncproxy" - "nova-novncproxy"

View File

@ -202,3 +202,27 @@
env: env:
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}" KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
when: inventory_hostname in groups['compute'] when: inventory_hostname in groups['compute']
- name: Starting Nova-compute-ironic container
docker:
tty: True
net: host
pull: "{{ docker_pull_policy }}"
restart_policy: "{{ docker_restart_policy }}"
restart_policy_retry: "{{ docker_restart_policy_retry }}"
state: reloaded
registry: "{{ docker_registry }}"
username: "{{ docker_registry_username }}"
password: "{{ docker_registry_password }}"
insecure_registry: "{{ docker_insecure_registry }}"
privileged: True
name: nova_compute_ironic
image: "{{ nova_compute_ironic_image_full }}"
volumes:
- "{{ node_config_directory }}/nova-compute-ironic/:{{ container_config_directory }}/:ro"
- "/var/lib/kolla/dev/log:/dev/log"
env:
KOLLA_CONFIG_STRATEGY: "{{ config_strategy }}"
when:
- inventory_hostname in groups['nova-compute-ironic']
- enable_ironic | bool

View File

@ -0,0 +1,12 @@
{
"command": "nova-compute",
"config_files": [
{
"source": "{{ container_config_directory }}/nova.conf",
"dest": "/etc/nova/nova.conf",
"owner": "nova",
"perm": "0600"
}
]
}

View File

@ -33,12 +33,14 @@ linuxnet_interface_driver = nova.network.linux_net.BridgeInterfaceDriver
allow_resize_to_same_host = true allow_resize_to_same_host = true
{% if enable_ironic | bool %} {% if enable_ironic | bool %}
compute_driver = nova.virt.ironic.IronicDriver
scheduler_host_manager = nova.scheduler.ironic_host_manager.IronicHostManager scheduler_host_manager = nova.scheduler.ironic_host_manager.IronicHostManager
{% endif %}
{% if service_name == "nova-compute-ironic" %}
compute_driver = nova.virt.ironic.IronicDriver
vnc_enabled = False
ram_allocation_ratio = 1.0 ram_allocation_ratio = 1.0
reserved_host_memory_mb = 0 reserved_host_memory_mb = 0
compute_manager = ironic.nova.compute.manager.ClusteredComputeManager
scheduler_use_baremetal_filters = True
{% else %} {% else %}
compute_driver = libvirt.LibvirtDriver compute_driver = libvirt.LibvirtDriver
{% endif %} {% endif %}
@ -72,13 +74,13 @@ html5proxy_host = {{ hostvars[inventory_hostname]['ansible_' + api_interface]['i
html5proxy_port = {{ nova_spicehtml5proxy_port }} html5proxy_port = {{ nova_spicehtml5proxy_port }}
{% endif %} {% endif %}
{% if enable_ironic | bool %} {% if service_name == "nova-compute-ironic" %}
[ironic] [ironic]
#(TODO) remember to update this once discoverd is replaced by inspector #(TODO) remember to update this once discoverd is replaced by inspector
admin_username = {{ ironic_keystone_user }} admin_username = {{ ironic_keystone_user }}
admin_password = {{ ironic_keystone_password }} admin_password = {{ ironic_keystone_password }}
admin_url = {{ openstack_auth.auth_url }} admin_url = {{ openstack_auth_v2.auth_url }}
admin_tenant_name = {{ openstack_auth.project_name }} admin_tenant_name = service
api_endpoint = http://{{ kolla_internal_address }}:{{ ironic_api_port }}/v1 api_endpoint = http://{{ kolla_internal_address }}:{{ ironic_api_port }}/v1
{% endif %} {% endif %}

View File

@ -0,0 +1,16 @@
FROM {{ namespace }}/{{ image_prefix }}nova-base:{{ tag }}
MAINTAINER {{ maintainer }}
{% if install_type == 'binary' %}
{% if base_distro in ['centos', 'fedora', 'oraclelinux', 'rhel'] %}
RUN yum -y install \
openstack-nova-compute \
&& yum clean all
{% endif %}
{% endif %}
{{ include_footer }}
USER nova