Haproxy gets deployed even with "enable_haproxy": "no"

Bug #2024174 reported by Adam Stackhouse
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
kolla-ansible
In Progress
Medium
Maksim Malchuk
Antelope
In Progress
Medium
Maksim Malchuk
Wallaby
Confirmed
Medium
Unassigned
Xena
Confirmed
Medium
Unassigned
Yoga
Confirmed
Medium
Unassigned
Zed
Confirmed
Medium
Unassigned

Bug Description

Hi,

These are the details of the kolla release I am using as well as relevant global.yml options I have set in my deployment before I describe the issue:

Kolla release --> stable/zed

global.yml options that are relevant:

"enable_haproxy": "no"
"enable_proxysql": "yes"
"enable_glance": "yes"

The issue I am seeing which I believe to be a bug is that when I deploy kolla with proxysql for mariadb and have haproxy disabled, I still get a haproxy container deployed that is blank with only a stats frontend. I of course don't want this haproxy container deployed as I specify this as disabled as I use a network based load balancer for my setup.

The bug looks to cause two issues with my deployment and I have been able to mitigate these by creating a blank inventory group "haproxy_running_True" and just living with the bare bones haproxy container however I don't think these solutions are ideal.

The first issue I have noticed is that when the loadbalancer plays are triggered when you have proxysql enabled and mariadb to be deployed. The haproxy container seems to be static enabled in the default main.yml here --> https://github.com/openstack/kolla-ansible/blob/d69001641832531e5b471eab70eca8fc83e46d5f/ansible/roles/loadbalancer/defaults/main.yml#L6

However I believe this enabled flag should be taking into consideration the enabled_haproxy var and in this case it is set to no. I think changing this would better match the desires when you want proxysql enabled for maraidb but not have haproxy.

The second issue is related to the above. Because the haproxy container is enabled the pre checks checks for API services listening to make sure they aren't in use. The pre-check failure I kept hitting was the Glance API check. I have glance load balanced on a network load balancer and in theory haproxy disabled however as the container is static enabled from the play this precheck is ran. The location of this play I have talking about is here --> https://github.com/openstack/kolla-ansible/blob/d69001641832531e5b471eab70eca8fc83e46d5f/ansible/roles/loadbalancer/tasks/precheck.yml#LL321C14-L321C14

I am able to mitigate this as mentioned above by creating an empty inventory group called "haproxy_running_True" as referenced earlier in the prechecks.yml however this seems like a bit of a hack and as I explicitly requested haproxy to not be enabled this seems like it could be avoided.

I suspect changing the static enabled of haproxy will require quite a few plays in the load balancer role to have there when: clauses changed to account for this change but suspect it will be better for setups similar to mine as described above.

Of course I might be wrong and this is expected so im open to any suggestions and happy to answer any questions you need to better look into this. I am also happy to offer contributions to help get this bug sorted if it is indeed a bug, Would of course need to check out the developer guides before doing so.

So yeah anything else you need in regards to the above feel free to reach out.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to kolla-ansible (master)
Changed in kolla-ansible:
status: New → In Progress
Changed in kolla-ansible:
importance: Undecided → Medium
assignee: nobody → Maksim Malchuk (mmalchuk)
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.