Bug 1553452

Summary: installer should set "runtime=cri-o" label for cri-o node when no schedulable nodes found matching node selector for docker-gc daemonset
Product: OpenShift Container Platform Reporter: Vikas Laad <vlaad>
Component: InstallerAssignee: Scott Dodson <sdodson>
Status: CLOSED DEFERRED QA Contact: Johnny Liu <jialiu>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 3.9.0CC: aos-bugs, eminguez, jokerman, mmccomas, wkulhane
Target Milestone: ---   
Target Release: 3.9.z   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-11-16 15:26:17 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Description Vikas Laad 2018-03-08 21:52:15 UTC
Description of problem:

TASK [openshift_master : Ensure that docker-gc daemonset has nodes to run on] ***
Thursday 08 March 2018  16:26:43 +0000 (0:00:00.699)       0:12:32.002 ******** 
fatal: [ec2-34-212-24-46.us-west-2.compute.amazonaws.com]: FAILED! => {
    "assertion": false, 
    "changed": false, 
    "evaluated_to": false, 
    "failed": true, 
    "msg": "No schedulable nodes found matching node selector for docker-gc daemonset - 'runtime=cri-o'"
}

Version-Release number of the following components:
rpm -q openshift-ansible
latest on release-3.9 branch

rpm -q ansible
ansible-2.4.3.0-1.el7ae.noarch

ansible --version
ansible 2.4.3.0
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.5 (default, Feb 20 2018, 09:19:12) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)]

How reproducible:
when runtime is cri-o

Steps to Reproduce:
1. run deploy_cluster playbook when inv has use_crio true
2. see ansible output

Actual results:
Install fails because inventory does not have labels where dockerdc ds pods should run.
No schedulable nodes found matching node selector for docker-gc daemonset - 'runtime=cri-o'

Expected results:
Install should be able to figure out where Runtime is cri-o and add labels on those nodes.

Additional info:
Please attach logs from ansible-playbook with the -vvv flag

Comment 1 Scott Dodson 2018-03-08 21:54:03 UTC
Workaround, label crio nodes 'runtime=cri-o'

Comment 2 Johnny Liu 2018-03-09 05:09:53 UTC
The same root cause as BZ#1552438.

I think labeling crio nodes with "runtime=cri-o" could be done automatically by installer, no need any extra setting (set label for cri-o node or set  openshift_crio_docker_gc_node_selector option with a customized selector in inventory)

I modify the bug summary to track crio node label automatically set by installer issue.

Comment 3 Johnny Liu 2018-04-03 02:01:38 UTC
*** Bug 1562943 has been marked as a duplicate of this bug. ***

Comment 4 Russell Teague 2018-11-16 15:26:17 UTC
There are no active cases related to this bug. As such we're closing this bug in order to focus on bugs that are still tied to active customer cases. Please re-open this bug if this bug becomes relevant to an open customer case.