Overhaul ironic role
Removed unused variables when able and updated to the new ironic driver definitions found here. https://docs.openstack.org/ironic/latest/admin/upgrade-to-hardware-types.html The intention is to support the drivers via profiles, so the table from the above link was converted to a dictionary. This dictionary was used as a source when combining / concatenating the various drivers for each profile into a usable list. The standalone logic was simplified. Change-Id: I19553af41b5e669386b855209c61235bf37371f2 Closes-Bug: 1758351
This commit is contained in:
parent
af5b268007
commit
fc1e4f78dc
@ -69,7 +69,7 @@ ironic_services:
|
||||
ironic-oneviewd:
|
||||
group: ironic_conductor
|
||||
service_name: ironic-oneviewd
|
||||
service_en: "{{ ironic_oneview_enabled | bool }}"
|
||||
service_en: "{{ 'oneview' in filtered_ironic_drivers.hardware_type }}"
|
||||
init_config_overrides: "{{ ironic_oneviewd_init_config_overrides }}"
|
||||
|
||||
|
||||
@ -119,10 +119,6 @@ ironic_automated_clean: false
|
||||
ironic_erase_devices_priority: 10
|
||||
|
||||
## ironic-oneview
|
||||
ironic_oneview_enabled: "{% if 'agent_pxe_oneview' in ironic_openstack_driver_list or
|
||||
'agent_pxe_oneview' in ironic_standalone_driver_list or
|
||||
'iscsi_pxe_oneview' in ironic_openstack_driver_list or
|
||||
'iscsi_pxe_oneview' in ironic_standalone_driver_list %}True{% else %}False{% endif %}"
|
||||
ironic_oneview_manager_url: ""
|
||||
ironic_oneview_username: ""
|
||||
ironic_oneview_password: ""
|
||||
@ -177,25 +173,13 @@ ironic_keystone_auth_plugin: password
|
||||
# Integrated Openstack configuration
|
||||
ironic_enabled_network_interfaces_list: "flat,noop{{ (ironic_neutron_provisioning_network_uuid is defined) | ternary(',neutron','') }}"
|
||||
ironic_default_network_interface: "{{ (ironic_neutron_provisioning_network_uuid is defined) | ternary('neutron','flat') }}"
|
||||
ironic_openstack_driver_list:
|
||||
- agent_ipmitool
|
||||
- pxe_ipmitool
|
||||
ironic_openstack_driver_loaded_list: "{% for driver in ironic_openstack_driver_list %}{{ driver }}{% if not loop.last %},{% endif %}{% endfor %}"
|
||||
ironic_openstack_auth_strategy: keystone
|
||||
#ironic_openstack_api_url: '' # Not required when we have keystone
|
||||
ironic_openstack_dhcp_provider: neutron
|
||||
ironic_openstack_sync_power_state_interval: 60
|
||||
ironic_openstack_db_connection_string: "mysql+pymysql://{{ ironic_galera_user }}:{{ ironic_container_mysql_password }}@{{ ironic_galera_address }}/ironic{% if ironic_galera_use_ssl | bool %}&ssl_ca={{ ironic_galera_ssl_ca_cert }}{% endif %}"
|
||||
ironic_auth_strategy: keystone
|
||||
ironic_dhcp_provider: "{{ (ironic_standalone | bool) | ternary('none', 'neutron') }}"
|
||||
ironic_sync_power_state_interval: "{{ (ironic_standalone | bool) | ternary('-1', '60') }}"
|
||||
ironic_db_connection_string: "mysql+pymysql://{{ ironic_galera_user }}:{{ ironic_container_mysql_password }}@{{ ironic_galera_address }}/ironic{% if ironic_galera_use_ssl | bool %}&ssl_ca={{ ironic_galera_ssl_ca_cert }}{% endif %}"
|
||||
|
||||
# Standalone Ironic configuration
|
||||
ironic_standalone_driver_list:
|
||||
- agent_ipmitool
|
||||
ironic_standalone_driver_loaded_list: "{% for driver in ironic_standalone_driver_list %}{{ driver }}{% if not loop.last %},{% endif %}{% endfor %}"
|
||||
ironic_standalone_auth_strategy: noauth
|
||||
ironic_standalone_api_url: "{{ ironic_service_internaluri }}/"
|
||||
ironic_standalone_dhcp_provider: none
|
||||
ironic_standalone_sync_power_state_interval: -1
|
||||
ironic_standalone_db_connection_string: "{{ ironic_openstack_db_connection_string }}"
|
||||
ironic_service_internaluri: "{{ ironic_service_internaluri_proto }}://{{ internal_lb_vip_address }}:{{ ironic_service_port }}"
|
||||
|
||||
# Ironic db tuning
|
||||
ironic_db_max_overflow: 10
|
||||
@ -265,7 +249,7 @@ ironic_uwsgi_bind_address: 0.0.0.0
|
||||
### OpenStack Services to integrate with
|
||||
|
||||
# Glance
|
||||
ironic_glance_auth_strategy: "{{ ironic_openstack_auth_strategy }}"
|
||||
ironic_glance_auth_strategy: "{{ ironic_auth_strategy }}"
|
||||
ironic_glance_service_project_name: "{{ glance_service_project_name | default('service') }}"
|
||||
ironic_glance_service_project_domain_id: "{{ glance_service_project_domain_id | default('default') }}"
|
||||
ironic_glance_keystone_auth_plugin: "{{ glance_keystone_auth_plugin | default('password') }}"
|
||||
@ -274,7 +258,7 @@ ironic_glance_service_user_domain_id: "{{ glance_service_user_domain_id | defaul
|
||||
ironic_glance_keystone_auth_url: "{{ keystone_service_internalurl | default('http://localhost:5000/v3') }}"
|
||||
|
||||
# Neutron
|
||||
ironic_neutron_auth_strategy: "{{ ironic_openstack_auth_strategy }}"
|
||||
ironic_neutron_auth_strategy: "{{ ironic_auth_strategy }}"
|
||||
|
||||
# This variable is used by the repo_build process to determine
|
||||
# which host group to check for members of before building the
|
||||
@ -295,3 +279,8 @@ ironic_pxe_append_params: "ipa-debug=1 systemd.journald.forward_to_console=yes"
|
||||
ironic_api_init_config_overrides: {}
|
||||
ironic_conductor_init_config_overrides: {}
|
||||
ironic_oneviewd_init_config_overrides: {}
|
||||
|
||||
# driver definitions
|
||||
ironic_drivers_enabled:
|
||||
- agent_ipmitool
|
||||
- pxe_ipmitool
|
||||
|
@ -13,30 +13,6 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
- name: Setup ironic for standalone usage
|
||||
set_fact:
|
||||
ironic_driver_list: "{{ ironic_standalone_driver_loaded_list }}"
|
||||
ironic_auth_strategy: "{{ ironic_standalone_auth_strategy }}"
|
||||
ironic_api_url: "{{ ironic_standalone_api_url }}"
|
||||
ironic_dhcp_provider: "{{ ironic_standalone_dhcp_provider }}"
|
||||
ironic_sync_power_state_interval: "{{ ironic_standalone_sync_power_state_interval }}"
|
||||
ironic_db_connection_string: "{{ ironic_standalone_db_connection_string }}"
|
||||
when: ironic_standalone | bool
|
||||
tags:
|
||||
- always
|
||||
|
||||
- name: Setup ironic for integrated Openstack usage
|
||||
set_fact:
|
||||
ironic_driver_list: "{{ ironic_openstack_driver_loaded_list }}"
|
||||
ironic_auth_strategy: "{{ ironic_openstack_auth_strategy }}"
|
||||
ironic_api_url: "{{ ironic_openstack_api_url | default(omit) }}"
|
||||
ironic_dhcp_provider: "{{ ironic_openstack_dhcp_provider }}"
|
||||
ironic_sync_power_state_interval: "{{ ironic_openstack_sync_power_state_interval }}"
|
||||
ironic_db_connection_string: "{{ ironic_openstack_db_connection_string }}"
|
||||
when: not ironic_standalone | bool
|
||||
tags:
|
||||
- always
|
||||
|
||||
- name: Post swift tempURL secret key
|
||||
command: >
|
||||
{{ ironic_bin }}/swift {{ keystone_service_adminuri_insecure | bool | ternary('--insecure','') }}
|
||||
|
@ -5,8 +5,7 @@
|
||||
use_stderr = False
|
||||
debug = {{ debug }}
|
||||
|
||||
auth_strategy = {{ ironic_openstack_auth_strategy }}
|
||||
enabled_drivers = {{ ironic_driver_list }}
|
||||
auth_strategy = {{ ironic_auth_strategy }}
|
||||
host = {{ inventory_hostname }}
|
||||
|
||||
memcached_servers = {{ memcached_servers }}
|
||||
@ -16,6 +15,14 @@ default_network_interface = {{ ironic_default_network_interface }}
|
||||
## RPC Backend
|
||||
transport_url = {{ ironic_oslomsg_rpc_transport }}://{% for host in ironic_oslomsg_rpc_servers.split(',') %}{{ ironic_oslomsg_rpc_userid }}:{{ ironic_oslomsg_rpc_password }}@{{ host }}:{{ ironic_oslomsg_rpc_port }}{% if not loop.last %},{% else %}/{{ ironic_oslomsg_rpc_vhost }}{% if ironic_oslomsg_rpc_use_ssl | bool %}?ssl=1{% else %}?ssl=0{% endif %}{% endif %}{% endfor %}
|
||||
|
||||
# drivers
|
||||
enabled_hardware_types = {{ filtered_ironic_drivers.hardware_type | join(',') }}
|
||||
enabled_boot_interfaces = {{ filtered_ironic_drivers.boot | join(',') }}
|
||||
enabled_deploy_interfaces = {{ filtered_ironic_drivers.deploy | join(',') }}
|
||||
enabled_inspect_interfaces = {{ filtered_ironic_drivers.inspect | join(',') }}
|
||||
enabled_management_interfaces = {{ filtered_ironic_drivers.management | join(',') }}
|
||||
enabled_power_interfaces = {{ filtered_ironic_drivers.power | join(',') }}
|
||||
|
||||
[agent]
|
||||
|
||||
[amt]
|
||||
@ -27,8 +34,8 @@ transport_url = {{ ironic_oslomsg_rpc_transport }}://{% for host in ironic_oslom
|
||||
[cisco_ucs]
|
||||
|
||||
[conductor]
|
||||
{% if ironic_api_url is defined %}
|
||||
api_url = {{ ironic_api_url }}
|
||||
{% if ironic_standalone | bool %}
|
||||
api_url = {{ ironic_service_internaluri }}/
|
||||
{% endif %}
|
||||
sync_power_state_interval = {{ ironic_sync_power_state_interval }}
|
||||
automated_clean = {{ ironic_automated_clean }}
|
||||
@ -134,14 +141,14 @@ cleaning_network = {{ ironic_neutron_cleaning_network_uuid | default(ironic_neut
|
||||
{% endif %}
|
||||
|
||||
[oneview]
|
||||
{% if ironic_oneview_enabled %}
|
||||
{%- if 'oneview' in filtered_ironic_drivers.hardware_type -%}
|
||||
manager_url = {{ ironic_oneview_manager_url }}
|
||||
username = {{ ironic_oneview_username }}
|
||||
password = {{ ironic_oneview_password }}
|
||||
allow_insecure_connections = {{ ironic_oneview_allow_insecure_connections }}
|
||||
tls_cacert_file = {{ ironic_oneview_tls_cacert_file }}
|
||||
max_polling_attempts = {{ ironic_oneview_max_polling_attempts }}
|
||||
{% endif %}
|
||||
{%- endif -%}
|
||||
|
||||
[oslo_concurrency]
|
||||
lock_path = {{ ironic_lock_path }}
|
||||
|
145
vars/main.yml
145
vars/main.yml
@ -15,6 +15,142 @@
|
||||
|
||||
# This special list brings together all of the package installations into one
|
||||
# task to save time.
|
||||
|
||||
ironic_driver_types:
|
||||
agent_ilo:
|
||||
hardware_type: ilo
|
||||
boot: ilo-virtual-media
|
||||
deploy: direct
|
||||
inspect: ilo
|
||||
management: ilo
|
||||
power: ilo
|
||||
agent_ipmitool:
|
||||
hardware_type: ipmi
|
||||
boot: pxe
|
||||
deploy: direct
|
||||
inspect: inspector
|
||||
management: ipmitool
|
||||
power: ipmitool
|
||||
agent_ipmitool_socat:
|
||||
hardware_type: ipmi
|
||||
boot: pxe
|
||||
deploy: direct
|
||||
inspect: inspector
|
||||
management: ipmitool
|
||||
power: ipmitool
|
||||
agent_irmc:
|
||||
hardware_type: irmc
|
||||
boot: irmc-virtual-media
|
||||
deploy: direct
|
||||
inspect: irmc
|
||||
management: irmc
|
||||
power: irmc
|
||||
agent_pxe_oneview:
|
||||
hardware_type: oneview
|
||||
boot: pxe
|
||||
deploy: oneview-direct
|
||||
inspect: oneview
|
||||
management: oneview
|
||||
power: oneview
|
||||
agent_ucs:
|
||||
hardware_type: cisco-ucs-managed
|
||||
boot: pxe
|
||||
deploy: direct
|
||||
inspect: inspector
|
||||
management: ucsm
|
||||
power: ucsm
|
||||
iscsi_ilo:
|
||||
hardware_type: ilo
|
||||
boot: ilo-virtual-media
|
||||
deploy: iscsi
|
||||
inspect: ilo
|
||||
management: ilo
|
||||
power: ilo
|
||||
iscsi_irmc:
|
||||
hardware_type: irmc
|
||||
boot: irmc-virtual-media
|
||||
deploy: iscsi
|
||||
inspect: irmc
|
||||
management: irmc
|
||||
power: irmc
|
||||
iscsi_pxe_oneview:
|
||||
hardware_type: oneview
|
||||
boot: pxe
|
||||
deploy: oneview-iscsi
|
||||
inspect: oneview
|
||||
management: oneview
|
||||
power: oneview
|
||||
pxe_agent_cimc:
|
||||
hardware_type: cisco-ucs-standalone
|
||||
boot: pxe
|
||||
deploy: direct
|
||||
inspect: inspector
|
||||
management: cimc
|
||||
power: cimc
|
||||
pxe_drac:
|
||||
hardware_type: idrac
|
||||
boot: pxe
|
||||
deploy: iscsi
|
||||
inspect: idrac
|
||||
management: idrac
|
||||
power: idrac
|
||||
pxe_drac_inspector:
|
||||
hardware_type: idrac
|
||||
boot: pxe
|
||||
deploy: iscsi
|
||||
inspect: inspector
|
||||
management: idrac
|
||||
power: idrac
|
||||
pxe_ilo:
|
||||
hardware_type: ilo
|
||||
boot: ilo-pxe
|
||||
deploy: iscsi
|
||||
inspect: ilo
|
||||
management: ilo
|
||||
power: ilo
|
||||
pxe_ipmitool:
|
||||
hardware_type: ipmi
|
||||
boot: pxe
|
||||
deploy: iscsi
|
||||
inspect: inspector
|
||||
management: ipmitool
|
||||
power: ipmitool
|
||||
pxe_ipmitool_socat:
|
||||
hardware_type: ipmi
|
||||
boot: pxe
|
||||
deploy: iscsi
|
||||
inspect: inspector
|
||||
management: ipmitool
|
||||
power: ipmitool
|
||||
pxe_iscsi_cimc:
|
||||
hardware_type: cisco-ucs-standalone
|
||||
boot: pxe
|
||||
deploy: iscsi
|
||||
inspect: inspector
|
||||
management: cimc
|
||||
power: cimc
|
||||
pxe_irmc:
|
||||
hardware_type: irmc
|
||||
boot: irmc-pxe
|
||||
deploy: iscsi
|
||||
inspect: irmc
|
||||
management: irmc
|
||||
power: irmc
|
||||
pxe_snmp:
|
||||
hardware_type: snmp
|
||||
boot: pxe
|
||||
deploy: iscsi
|
||||
inspect: no-inspect
|
||||
management: fake
|
||||
power: snmp
|
||||
pxe_ucs:
|
||||
hardware_type: cisco-ucs-managed
|
||||
boot: pxe
|
||||
deploy: iscsi
|
||||
inspect: inspector
|
||||
management: ucsm
|
||||
power: ucsm
|
||||
|
||||
ironic_packages_list: >
|
||||
{%- set package_list = [] %}
|
||||
{%- if ironic_developer_mode | bool %}
|
||||
@ -42,3 +178,12 @@ filtered_ironic_services: |-
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{{ services }}
|
||||
|
||||
filtered_ironic_drivers: |-
|
||||
{% set concat_drivers = {} %}
|
||||
{% for driver in ironic_drivers_enabled %}
|
||||
{% if driver in ironic_driver_types.keys() %}
|
||||
{% set _ = concat_drivers.update(ironic_driver_types[driver]) %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{{ concat_drivers }}
|
||||
|
Loading…
Reference in New Issue
Block a user