EnterpriseDB / edb-ansible

Ansible code for deploying EDB Postgres database clusters and related products.
Other
79 stars 50 forks source link

manage_dbserver service handler fails when patroni is used #509

Open treenerd opened 1 year ago

treenerd commented 1 year ago

Hi edb community;

I have tested the patroni part a bit and realized that I got some issues within my playbooks when manage_dbserver handler tries to reload postgresql on a node. Because patroni creates the service like postgresql-{pg_version}-patroni and manage_dbserver uses the lookup for pg_service which doesn't recognize that patroni is configured on that node, the reload will point to the wron service on that node. So within the lookup plugin the information about patroni is completely missing.

I don't have that much experience yet with patroni, but it would be interessting how it is recommended to reload, restart nodes configured with patroni when the edb roles are used.

I also think, that even if ansible reloads postgresql-12-patroni a manual step will be needed, because inside patroni it is just marked to be reloaded/restarted. So it has to be scheduled or triggered within patroni to make things really happen.

If it is welcome I can create a improvment of the lookup plugin and add functionality for patroni. I'm open for discussions.

Best Regards

vibhorkumar123 commented 1 year ago

Hi @treenerd , I appreciate you for pointing out the missing piece in the lookup plugin. Our team values contributions, and we're always excited to showcase them in our releases. Please feel to contribute to this project.

vibhorkumar123 commented 1 year ago

@treenerd Would you like to submit a patch for per the previous comment?

treenerd commented 1 year ago

Hi @vibhorkumar123

Sorry, but I thought I would have time to create a patch, but I didn't had time yet. I also focus more on kubernetes related stuff like the cloudnativePG and reduced my efforts in ansible roles a bit at the moment.

So from my side there are not the resources to provide a patch at the moment and test everything in deep.