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: NEW --- QA Contact: Johnny Liu <jialiu>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 3.9.0CC: aos-bugs, jokerman, mmccomas, wkulhane
Target Milestone: ---   
Target Release: 3.9.z   
Hardware: Unspecified   
OS: Unspecified   
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 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 16:52:15 EST
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 --version
  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 16:54:03 EST
Workaround, label crio nodes 'runtime=cri-o'
Comment 2 Johnny Liu 2018-03-09 00:09:53 EST
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-02 22:01:38 EDT
*** Bug 1562943 has been marked as a duplicate of this bug. ***