Conditional check required in virt-support-goenabled.sh

Bug #1843616 reported by Brent Rowsell
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
StarlingX
Fix Released
Medium
Al Bailey

Bug Description

Brief Description
-----------------
The following check in virt-support-goenabled.sh needs to be extended to check for the presence of the openstack compute label. There is no need to fail the enable if openstack is not being deployed.

if [ "${host_type}" == "physical" ] && [ "${hardware_virt_supported}" == "false" ]; then
    LOG "Virtualization is not supported: ${OPTS}. Failing goenabled check."
    LOG "Failure reasons:"$'\n'"${REASONS}"
    exit 1
fi

This results in the worker node failing to unlock even though it has no dependency on hardware virtualization.

Severity
--------
Medium to Low

Steps to Reproduce
------------------
On a k8s only deployment (i.e. no openstack labels are specified)
- Lock worker node
- Disable vt-x in the BIOS
- Unlock worker node

Expected Behavior
------------------
The unlock passes

Actual Behavior
----------------
The unlock fails and the node goes into a loop loop

Reproducibility
---------------
Reproducible

System Configuration
--------------------
any

Branch/Pull Time/Commit
-----------------------
master 2019-09-11

Last Pass
---------
This issue exists since the introduction of the container platform in stx.2.0

Timestamp/Logs
--------------
N/A

Test Activity
-------------
Found accidentally - node had vt-d disabled by mistake

Revision history for this message
Ghada Khalil (gkhalil) wrote :

Marking as stx.3.0 / medium priority -- this causes a node reboot loop for k8s only deployments which don't need VT-x on

tags: added: stx.3.0 stx.config
Changed in starlingx:
importance: Undecided → Medium
status: New → Triaged
assignee: nobody → Al Bailey (albailey1974)
Revision history for this message
Al Bailey (albailey1974) wrote :

puppet/kubernetes in the get_host_config will calculate the labels and stores them to disk on each host.

This should then be accessible in the hiera data file under:
/opt/platform/puppet/19.09/hieradata/<yaml file for this host>

Example syntax:
platform::kubernetes::params::host_labels:
- !!python/unicode 'openstack-control-plane'

All platforms will have it located under:
/tmp/puppet/hieradata/host.yaml

and that file is recreated when rebooted.

ex syntax on hardware:
platform::kubernetes::params::host_labels:
- !!python/unicode 'sriovdp'
- !!python/unicode 'openvswitch'

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to metal (master)

Fix proposed to branch: master
Review: https://review.opendev.org/682122

Changed in starlingx:
status: Triaged → In Progress
Ghada Khalil (gkhalil)
description: updated
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to metal (master)

Reviewed: https://review.opendev.org/682122
Committed: https://git.openstack.org/cgit/starlingx/metal/commit/?id=b1df966e0234c4e3d8978ff949d2ebea523e5ea9
Submitter: Zuul
Branch: master

commit b1df966e0234c4e3d8978ff949d2ebea523e5ea9
Author: Al Bailey <email address hidden>
Date: Fri Sep 13 12:27:48 2019 -0500

    Allow computes without virtualization enabled to be unlocked

    The goenabled script in mtce-compute checks if hardware
    virtualization is enabled, before allowing the node to
    become enabled. (hardware only)

    This check is only needed if the compute is being used as an
    openstack compute node, and so the check has been updated
    to look for the appropriate label.

    Puppet stores the labels in the hieradata file in /tmp.

    That file is recreated when the host is rebooted or unlocked,
    and labels cannot be changed unless a host is locked.

    Change-Id: I6862a1b7824c759f0c3caea37c3ae6e4e9ab43b7
    Closes-Bug: 1843616
    Signed-off-by: Al Bailey <email address hidden>

Changed in starlingx:
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.