Bug 1963872 - [Validation] container-status validation not ready for FFU 13 -> 16.1: [Errno 2] No such file or directory
Summary: [Validation] container-status validation not ready for FFU 13 -> 16.1: [Errno...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-tripleo-validations
Version: 16.1 (Train)
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: z7
: 16.1 (Train on RHEL 8.2)
Assignee: Gaël Chamoulaud
QA Contact: David Rosenfeld
URL:
Whiteboard:
: 1965237 (view as bug list)
Depends On:
Blocks: 1966202
TreeView+ depends on / blocked
 
Reported: 2021-05-24 09:47 UTC by Jose Luis Franco
Modified: 2024-10-01 18:18 UTC (History)
6 users (show)

Fixed In Version: openstack-tripleo-validations-11.3.2-1.20210601063306.4db92ba.el8ost
Doc Type: No Doc Update
Doc Text:
Clone Of:
: 1966202 (view as bug list)
Environment:
Last Closed: 2021-12-09 20:19:39 UTC
Target Upstream Version: Train
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
OpenStack gerrit 793358 0 None MERGED [train-only] Set oc_container_cli for checks during ffu 2021-05-31 16:30:46 UTC
Red Hat Issue Tracker OSP-4111 0 None None None 2021-11-18 11:33:17 UTC
Red Hat Issue Tracker VALFRWK-537 0 None None None 2021-08-13 05:35:55 UTC
Red Hat Product Errata RHBA-2021:3762 0 None None None 2021-12-09 20:20:01 UTC

Description Jose Luis Franco 2021-05-24 09:47:58 UTC
Description of problem:

The container-status validation was initially created for deployed environments and as such, it relies on the container_cli parameter. However, during FFWD wokflow, the validation gets triggered as part of the pre-upgrade group. The moment in which it gets triggered, the environment is in a unusual state where the Undercloud has been upgrade to OSP16.1 (container engine is podman) but the Overcloud nodes are still on OSP13 (container engine is still docker).

As the validation relies on container_cli parameter, and the Undercloud has been upgraded, the container_cli parameter indicates to use podman. But the Overcloud nodes do not know anything about Podman yet, so the validation fails in all Overcloud nodes with:


{
    "hosts": {
        "controller-0": {
            "_ansible_no_log": false,
            "action": "command",
            "changed": false,
            "cmd": "podman ps -a --filter status=exited --format '{{ .Names }} {{ .Status }}'",
            "failed": true,
            "invocation": {
                "module_args": {
                    "_raw_params": "podman  ps -a --filter 'status=exited' --format '{{ .Names }} {{ .Status }}' \n",
                    "_uses_shell": false,
                    "argv": null,
                    "chdir": null,
                    "creates": null,
                    "executable": null,
                    "removes": null,
                    "stdin": null,
                    "stdin_add_newline": true,
                    "strip_empty_ends": true,
                    "warn": true
                }
            },
            "msg": "[Errno 2] No such file or directory",
            "rc": 2
        }
    },
    "name": "Get failed containers for podman",
    "status": "FAILED"
}

One solution is doing something similar to what is being performed in the ceph validation (ceph-health):
https://github.com/openstack/tripleo-validations/blob/master/roles/ceph/tasks/ceph-health.yaml#L13-L26

    - name: Check for docker cli
      stat:
        path: "/var/run/docker.sock"
      register: check_docker_cli
      check_mode: false

    - name: Set container_client fact
      set_fact:
        container_client: |-
          {% set container_client = 'podman' %}
          {%   if check_docker_cli.stat.exists|bool %}
          {%     set container_client = 'docker' %}
          {%   endif %}
          {{ container_client }}

Instead of relying on container_cli.

If required, a reproducer can be deployed.

Version-Release number of selected component (if applicable):


How reproducible:

Always

Steps to Reproduce:
1. Run FFWD 13 to 16.1. Upgrade first the Undercloud
2. Once upgraded, run the pre-upgrade group to check the Overcloud's status
3. See the container-status validation fail.

Actual results:


Expected results:


Additional info:

Comment 2 Gaël Chamoulaud 2021-05-31 09:29:09 UTC
*** Bug 1965237 has been marked as a duplicate of this bug. ***

Comment 9 David Rosenfeld 2021-08-06 18:50:31 UTC
https://rhos-ci-jenkins.lab.eng.tlv2.redhat.com/view/DFG/view/upgrades/view/ffu/job/DFG-upgrades-ffu-16.1-from-13-latest_cdn-3cont_1comp-ipv4-ovs_lvm/ shows the pre-upgrade validations may be executed after the undercloud has been upgraded from OSP13 to OSP16, but before the overcloud has been upgraded.

Comment 21 errata-xmlrpc 2021-12-09 20:19:39 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Red Hat OpenStack Platform 16.1.7 (Train) bug fix and enhancement advisory), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2021:3762


Note You need to log in before you can comment on or make changes to this bug.