From cf8ac8216cd21014eb05df146e0fac06d9823ac7 Mon Sep 17 00:00:00 2001 From: Mark Goddard Date: Fri, 2 Mar 2018 20:16:34 +0000 Subject: [PATCH] Enabled hardware type 'ucs' does not exist During classic driver deprecation [1], the ucs hardware type was added to the list of default enabled hardware types. This hardware type does not exist - the Cisco UCS hardware types are cisco-ucs-managed and cisco-ucs-standalone. This causes conductor to fail to start. This was not caught during testing as only the ipmi ironic hardware type is configured when testing. Now that VBMC is in use, it is no longer necessary to use a different set of drivers for testing. This change enables the cisco-ucs-managed hardware type by default, and uses the default set of drivers and hardware types for testing. It also adds configuration options for setting the enabled boot, power and management interfaces, with default values including interfaces required by the ilo and ucs hardware types. [1] https://github.com/openstack/bifrost/commit/46453661badf83c2c45a008908d4476de6785ccd Change-Id: Icfa89a2555966c6fbfd06186fdd17d852bc5ae7a Closes-Bug: #1752975 --- playbooks/roles/bifrost-ironic-install/README.md | 8 +++++--- .../roles/bifrost-ironic-install/defaults/main.yml | 5 ++++- .../roles/bifrost-ironic-install/tasks/install.yml | 4 ++-- .../bifrost-ironic-install/templates/ironic.conf.j2 | 11 ++++------- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/playbooks/roles/bifrost-ironic-install/README.md b/playbooks/roles/bifrost-ironic-install/README.md index 32fa25344..4a5688ee7 100644 --- a/playbooks/roles/bifrost-ironic-install/README.md +++ b/playbooks/roles/bifrost-ironic-install/README.md @@ -84,9 +84,11 @@ In case your HW needs a kernel option to boot, set the following variable: extra_kernel_options: Default undefined. -When testing, the default ironic conductor hardware type is "ipmi". When -testing mode has not been engaged, hardware types can be enabled using -the "enabled_hardware_types" variable, which defaults to "ipmi, ilo, ucs". +Hardware types can be enabled using the "enabled_hardware_types" variable, +which defaults to "ipmi, ilo, cisco-ucs-managed, cisco-ucs-standalone". + +Enabled interfaces can be set via the "enabled_boot_interfaces", +"enabled_management_interfaces", and "enabled_power_interfaces" variables. By default, PXE driver baseline support, in terms of installation of the iSCSI client and configuration of sudoers and rootwrap configuration is diff --git a/playbooks/roles/bifrost-ironic-install/defaults/main.yml b/playbooks/roles/bifrost-ironic-install/defaults/main.yml index 950ada972..32a243016 100644 --- a/playbooks/roles/bifrost-ironic-install/defaults/main.yml +++ b/playbooks/roles/bifrost-ironic-install/defaults/main.yml @@ -84,8 +84,11 @@ ironicinspectorclient_git_folder: /opt/stack/python-ironic-inspector-client staging_drivers_git_url: http://git.openstack.org/cgit/openstack/ironic-staging-drivers # TODO(TheJulia): Add redfish to this list. -enabled_hardware_types: "ipmi,ilo,ucs" +enabled_hardware_types: "ipmi,ilo,cisco-ucs-managed" default_deploy_interface: "direct" +enabled_boot_interfaces: "ilo-virtual-media,pxe" +enabled_management_interfaces: "ilo,ipmitool,ucsm" +enabled_power_interfaces: "ilo,ipmitool,ucsm" # DEPRECATED: Ironic is removing classic drivers in Rocky. Please see # enabled_hardware_types. diff --git a/playbooks/roles/bifrost-ironic-install/tasks/install.yml b/playbooks/roles/bifrost-ironic-install/tasks/install.yml index b6dfbd319..4305af98a 100644 --- a/playbooks/roles/bifrost-ironic-install/tasks/install.yml +++ b/playbooks/roles/bifrost-ironic-install/tasks/install.yml @@ -52,14 +52,14 @@ package=proliantutils state=present extra_args="-c {{ upper_constraints_file }}" - when: skip_install is not defined and testing | bool != true + when: skip_install is not defined - name: "UcsSdk - Install from pip" include: pip_install.yml package=UcsSdk version=0.8.1.9 extra_args="-c {{ upper_constraints_file }}" - when: skip_install is not defined and testing | bool != true + when: skip_install is not defined - name: "Install iSCSI client if PXE driver support is enabled" action: "{{ ansible_pkg_mgr }} name={{ iscsi_client_package }} state=present" diff --git a/playbooks/roles/bifrost-ironic-install/templates/ironic.conf.j2 b/playbooks/roles/bifrost-ironic-install/templates/ironic.conf.j2 index 1c4a9b479..b58c76751 100644 --- a/playbooks/roles/bifrost-ironic-install/templates/ironic.conf.j2 +++ b/playbooks/roles/bifrost-ironic-install/templates/ironic.conf.j2 @@ -5,6 +5,7 @@ [DEFAULT] +debug = {{ testing | bool }} # NOTE(TheJulia): Until Bifrost supports neutron or some other network # configuration besides a flat network where bifrost orchustrates the # control instead of ironic, noop is the only available network driver. @@ -14,16 +15,12 @@ default_deploy_interface = {{ default_deploy_interface }} enabled_inspect_interfaces = no-inspect,inspector default_inspect_interface = inspector {% endif %} +enabled_boot_interfaces = {{ enabled_boot_interfaces }} +enabled_management_interfaces = {{ enabled_management_interfaces }} +enabled_power_interfaces = {{ enabled_power_interfaces }} -{% if testing | bool == true %} -debug = true -# Default enable ipmi for CI testing -enabled_hardware_types = ipmi -{% else %} enabled_hardware_types = {{ enabled_hardware_types }} enabled_drivers = {{ enabled_drivers }} -debug = false -{% endif %} rabbit_userid = ironic rabbit_password = {{ ironic_db_password }}