Bug 2334022

Summary: etcd healthchecks are broken because "etcdctl endpoint health" returns status via stderr
Product: Red Hat OpenStack Reporter: Alex Stupnikov <astupnik>
Component: openstack-tripleo-commonAssignee: Nobody <nobody>
Status: CLOSED MIGRATED QA Contact: David Rosenfeld <drosenfe>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 17.1 (Wallaby)CC: mburns, pweeks, slinaber
Target Milestone: ---   
Target Release: ---   
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: 2025-01-15 15:19:03 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:

Description Alex Stupnikov 2024-12-24 19:11:48 UTC
Description of problem:
etcd container is always marked as unhealthy in RHOSP 17.1 deployments because "etcdctl endpoint health" returns status via stderr. As a result, grep command is unable to find "is healthy" in the output and marks service as unhealthy.

Reproducer:
bash-5.1$ export ETCDCTL_API=3
bash-5.1$ export ETCD_LISTEN_CLIENT_URLS="http://172.17.1.32:2379"
bash-5.1$ ETCDCTL_ENDPOINTS=$ETCD_LISTEN_CLIENT_URLS etcdctl endpoint health
http://172.17.1.32:2379 is healthy: successfully committed proposal: took = 2.298206ms
bash-5.1$ echo $?
0
bash-5.1$ ETCDCTL_ENDPOINTS=$ETCD_LISTEN_CLIENT_URLS etcdctl endpoint health | grep "is healthy"
http://172.17.1.32:2379 is healthy: successfully committed proposal: took = 4.146423ms
bash-5.1$ echo $?
1
bash-5.1$ ETCDCTL_ENDPOINTS=$ETCD_LISTEN_CLIENT_URLS etcdctl endpoint health 2>/dev/null | grep "is healthy"
bash-5.1$

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


How reproducible: see description