Bug 1573466

Summary: octavia.conf is in multiple locations in controller
Product: Red Hat OpenStack Reporter: Noam Manos <nmanos>
Component: puppet-octaviaAssignee: Assaf Muller <amuller>
Status: CLOSED NOTABUG QA Contact: Toni Freger <tfreger>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 13.0 (Queens)CC: beagles
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: 2018-05-02 13:47: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 Noam Manos 2018-05-01 11:31:11 UTC
Description of problem:

Trying to figure where is octavia.conf located, for example, when requiring to 
configure ACTIVE_STANDBY mode - user might edit the wrong octavia.conf file.

Acording to:
https://docs.openstack.org/octavia/pike/contributor/guides/dev-quick-start.html

The obvious option is to "Create or update /etc/octavia/octavia.conf "

However, the current working location is:
/var/lib/config-data/puppet-generated/octavia/etc/octavia/octavia.conf


Version-Release number of selected component (if applicable):
OSP: 13   
Puddle: 2018-04-10.2

How reproducible:
Always

Steps to Reproduce:

Login to Controller (where Octavia is deployed), and run as sudo:
[root@controller-0 ~]# find / -name octavia.conf

Actual results:

Found octavia.conf in (at least) 3 locations:
/etc/octavia/octavia.conf
/var/lib/config-data/puppet-generated/octavia/etc/octavia/octavia.conf
/var/lib/config-data/octavia/etc/octavia/octavia.conf


Expected results:
Please set octavia.conf file in a single location (preferably /etc/octavia/octavia.conf)

Comment 1 Assaf Muller 2018-05-01 14:15:11 UTC
Containerized services use:
/var/lib/config-data/puppet-generated/*/etc/

That being said, why do we also place it in /etc/octavia and /var/lib/config-data/octavia/etc/octavia?

Comment 2 Brent Eagles 2018-05-01 18:17:06 UTC
The two paths are part of how the puppet generated configuration is written and managed for all services. docker-puppet.py uses some logic to only update files in /var/lib/config-data/puppet-generated that were changed in the last "puppet apply". This will be everything on initial deploy. It then does some magic involving md5 digest calculated on /var/lib/config-data/puppet-generated, paunch and the docker container to restart if something has changed.

Comment 3 Assaf Muller 2018-05-02 13:47:44 UTC
Closing as NOTABUG, Octavia is identical to all other services in this regard. TripleO installs the octavia/nova/cinder/whatever .rpms on the overcloud nodes which results in /etc/octavia/*, and containerization results in the other two files. We may remove the rpm packages from the overcloud in future versions, but not in 13.