Bug 1618425

Summary: [3.10] Convert system container cri-o to rpm during upgrade
Product: OpenShift Container Platform Reporter: Russell Teague <rteague>
Component: Cluster Version OperatorAssignee: Russell Teague <rteague>
Status: CLOSED ERRATA QA Contact: Johnny Liu <jialiu>
Severity: high Docs Contact:
Priority: high    
Version: 3.10.0CC: aos-bugs, jialiu, jokerman, mmccomas, rteague, sdodson, wkulhane
Target Milestone: ---   
Target Release: 3.10.z   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Enhancement
Doc Text:
Feature: During an upgrade, a check is performed to see if the node is running cri-o as a system container. If so, the cri-o system container is uninstalled and the cri-o rpm is installed. Reason: Running cri-o as a system container is unsupported. In some cases during a 3.9 install, a node may inadvertently be installed with cri-o as a system container. Result: Nodes upgraded from 3.9 to 3.10 will be converted to a supported configuration with cri-o running from an rpm.
Story Points: ---
Clone Of: 1614916 Environment:
Last Closed: 2018-08-31 06:18:11 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1614916    
Bug Blocks:    

Comment 1 Russell Teague 2018-08-16 15:29:59 UTC
Moving upgrade portion to a new bug.

Comment 2 Russell Teague 2018-08-16 18:19:50 UTC
Merged to release-3.10, https://github.com/openshift/openshift-ansible/pull/9615

Comment 3 Russell Teague 2018-08-16 18:25:12 UTC
Basic process for manually switching a node from system container to rpm cri-o:

oc adm manage-node $NODE --schedulable=false
oc adm drain $NODE --force --delete-local-data --ignore-daemonsets
systemctl stop atomic-openshift-node.service
systemctl stop cri-o.service
atomic uninstall cri-o
# Delete the crio system container image so we know it's not being used
atomic images delete $CRIO-IMAGE
yum install -y cri-o
# Ensure we have the latest systemd units loaded
systemctl daemon-reload
# Ensure the latest one is enabled at reboot
systemctl enable cri-o.service
systemctl start cri-o.service
systemctl start atomic-openshift-node.service

Comment 5 Gan Huang 2018-08-23 01:24:05 UTC
1. Install openshift v3.9.30 with following inventory parameters:

openshift_crio_systemcontainer_image_override=test.registry.com/openshift3/cri-o:v3.9
openshift_use_crio=true

2. Upgrade to v3.10.34 using openshift-ansible-3.10.34-1.git.0.48df172None.noarch

3. Upgrade succeed, system container cri-o is transferred to rpm cri-o successfully

4. Existing app works well, new created app works well

Moving to verified.

Comment 8 errata-xmlrpc 2018-08-31 06:18:11 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, 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-2018:2376