Bug 1819568

Summary: no_proxy in overcloudrc gets duplicated items if no_proxy is set by overcoudrc
Product: Red Hat OpenStack Reporter: Takashi Kajinami <tkajinam>
Component: openstack-tripleo-commonAssignee: Adriano Petrich <apetrich>
Status: CLOSED ERRATA QA Contact: David Rosenfeld <drosenfe>
Severity: medium Docs Contact:
Priority: medium    
Version: 13.0 (Queens)CC: aschultz, cjeanner, emacchi, gchamoul, mburns, slinaber
Target Milestone: ---Keywords: Triaged, ZStream
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openstack-tripleo-common-8.7.1-22.el7ost Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-10-28 18:23:44 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 Takashi Kajinami 2020-04-01 04:47:09 UTC
Description of problem:

Currently overcloudrc sets no_proxy environment parameter, while stackrc doesn't.

This means that if an operator run
 $ source ~/overcloudrc
 $ source ~/stackrc
no_proxy parameter is not unset by stackrc and keeps vip ips.

If an operator updates overcloud with commands like 'openstack overcloud deploy' then,
the command is executed with no_proxy parameter set.
The command generates overcloudrc with combining current no_proxy parameter and overcloud vips,
it ends up in putting duplicated ips in overcloudrc.

~~~
(undercloud) [stack@undercloud-0 ~]$ openstack stack list
+--------------------------------------+------------+----------------------------------+-----------------+----------------------+--------------+
| ID                                   | Stack Name | Project                          | Stack Status    | Creation Time        | Updated Time |
+--------------------------------------+------------+----------------------------------+-----------------+----------------------+--------------+
| 0aed599e-1463-4951-b2c8-86fdd84f8445 | overcloud  | 16d31b5c4e284a7e8ae6f842d8ab228d | CREATE_COMPLETE | 2020-04-01T01:08:05Z | None         |
+--------------------------------------+------------+----------------------------------+-----------------+----------------------+--------------+
(undercloud) [stack@undercloud-0 ~]$ openstack port list | egrep -e 10.0.0.124 -e 192.168.24.8
| 1178fbda-2d3c-4f47-b77c-45f976ba59ad | control_virtual_ip      | fa:16:3e:7f:72:10 | ip_address='192.168.24.8', subnet_id='38bf9304-f15d-49b2-891d-aba9ae54f521'  | DOWN   |
| 58155b41-802d-4b9b-810b-bef9443e372d | public_virtual_ip       | fa:16:3e:37:ba:39 | ip_address='10.0.0.124', subnet_id='3f719ed1-4746-4358-a6aa-44b6a78251dc'    | DOWN   |
(undercloud) [stack@undercloud-0 ~]$ cat overcloudrc 
# Clear any old environment that may conflict.
for key in $( set | awk '{FS="="}  /^OS_/ {print $1}' ); do unset $key ; done
export OS_NO_CACHE=True
export COMPUTE_API_VERSION=1.1
export OS_USERNAME=admin
export no_proxy=,10.0.0.124,192.168.24.8 <==========(*)
export OS_REGION_NAME=regionOne
export OS_USER_DOMAIN_NAME=Default
export OS_VOLUME_API_VERSION=3
export OS_CLOUDNAME=overcloud
export OS_AUTH_URL=http://10.0.0.124:5000//v3
export NOVA_VERSION=1.1
export OS_IMAGE_API_VERSION=2
export OS_PASSWORD=PASSWORD
export OS_PROJECT_DOMAIN_NAME=Default
export OS_IDENTITY_API_VERSION=3
export OS_PROJECT_NAME=admin
export OS_AUTH_TYPE=password
export PYTHONWARNINGS='ignore:Certificate has no, ignore:A true SSLContext object is not available'

# Add OS_CLOUDNAME to PS1
if [ -z "${CLOUDPROMPT_ENABLED:-}" ]; then
    export PS1=${PS1:-""}
    export PS1=\${OS_CLOUDNAME:+"(\$OS_CLOUDNAME)"}\ $PS1
    export CLOUDPROMPT_ENABLED=1
fi
(undercloud) [stack@undercloud-0 ~]$ source overcloudrc 
(overcloud) [stack@undercloud-0 ~]$ source stackrc 
(undercloud) [stack@undercloud-0 ~]$ printenv | grep no_proxy
no_proxy=,10.0.0.124,192.168.24.8
(undercloud) [stack@undercloud-0 ~]$ ./overcloud_deploy_nologs.sh
...
2020-04-01 04:00:52Z [overcloud]: UPDATE_COMPLETE  Stack UPDATE completed successfully

 Stack overcloud UPDATE_COMPLETE 

Started Mistral Workflow tripleo.deployment.v1.get_horizon_url. Execution ID: 259851c1-3675-4bf5-8aea-022646b0cce8
Overcloud Endpoint: http://10.0.0.124:5000/
Overcloud Horizon Dashboard URL: http://10.0.0.124:80/dashboard
Overcloud rc file: /home/stack/overcloudrc
Overcloud Deployed
(undercloud) [stack@undercloud-0 ~]$ cat overcloudrc 
# Clear any old environment that may conflict.
for key in $( set | awk '{FS="="}  /^OS_/ {print $1}' ); do unset $key ; done
export OS_NO_CACHE=True
export COMPUTE_API_VERSION=1.1
export OS_USERNAME=admin
export no_proxy=,10.0.0.124,192.168.24.8,10.0.0.124,192.168.24.8 <==========(*)
export OS_REGION_NAME=regionOne
export OS_USER_DOMAIN_NAME=Default
export OS_VOLUME_API_VERSION=3
export OS_CLOUDNAME=overcloud
export OS_AUTH_URL=http://10.0.0.124:5000//v3
export NOVA_VERSION=1.1
export OS_IMAGE_API_VERSION=2
export OS_PASSWORD=PASSWORD
export OS_PROJECT_DOMAIN_NAME=Default
export OS_IDENTITY_API_VERSION=3
export OS_PROJECT_NAME=admin
export OS_AUTH_TYPE=password
export PYTHONWARNINGS='ignore:Certificate has no, ignore:A true SSLContext object is not available'

# Add OS_CLOUDNAME to PS1
if [ -z "${CLOUDPROMPT_ENABLED:-}" ]; then
    export PS1=${PS1:-""}
    export PS1=\${OS_CLOUDNAME:+"(\$OS_CLOUDNAME)"}\ $PS1
    export CLOUDPROMPT_ENABLED=1
fi
(undercloud) [stack@undercloud-0 ~]$ 
~~~

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

How reproducible:
Always

Steps to Reproduce:
1. deploy overcloud
2. Run '$ source ~/overcloudrc; source ~/stackrc'
3. rerun 'openstack overcloud deploy'

Actual results:
no_proxy in overcloud has duplicated items

Expected results:
no_proxy in overcloud doesn't have duplicated items

Additional info:

Comment 17 errata-xmlrpc 2020-10-28 18:23:44 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 13.0 director bug fix 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-2020:4388