kURL icon indicating copy to clipboard operation
kURL copied to clipboard

Unable to deploy HA cluster using ECKO internal load balancer using automation tooling

Open madrover opened this issue 3 years ago • 1 comments

hi

I'm working on an automated Replicated deployment using Kurl and orchestrating it with Ansible. Our goal is to have a fully automated deployment of Replicated HA cluster and applications without requiring any human intervention.

I want to use the EKCO internal load balancer capabilities for the control plane HA but when trying to deploy it using Ansible I'm getting the following error:

kubernetes.loadBalancerAddress required

I'm using the ha advanced flag to enable the HA capabilities and I have tried enabling the EKCO internal load balancer both via the command line ekco-enable-internal-load-balancer option and the enableInternalLoadBalancer entry in the installer specs.

When executing the command interactively, I'm getting the following output that I can just press enter and continue, but that prevents a fully automated deployment:

If you would like to bring your own load balancer to route external and internal traffic to the API servers, please enter a load balancer address
HAProxy will be used to perform this load balancing internally if you do not provide a load balancer address.
Load balancer address:

I have seen at https://github.com/replicatedhq/kURL/blob/a5dc3abda6f78804d68e1c82ba4def3d79df6171/scripts/common/prompts.sh#L212 that the installer will bail if no interactive shell exists. However I have not been able to find how to tell installer to use the internal load balancer using non-interactive means. How could I this?

More generally, I have noticed several call to the prompts_can_prompt function in https://github.com/replicatedhq/kURL/blob/main/scripts/common/prompts.sh shouldn't all the locations where prompts might be required have non-interactive means to avoid the prompt?

Thanks!

madrover avatar Oct 07 '22 08:10 madrover

Please try running the script without the ha flag and only the ekco-enable-internal-load-balancer or ekco.enableInternalLoadBalancer property. This is a quirk that should be fixed.

curl https://kurl.sh/latest | sudo bash -s ekco-enable-internal-load-balancer

https://kurl.sh/docs/add-ons/ekco#internal-load-balancer

emosbaugh avatar Oct 10 '22 17:10 emosbaugh

Hi @madrover,

I am closing this one as sorted out based in the above comment. However, feel free to re-open if you think that is required.

Thank you for your attention.

camilamacedo86 avatar Dec 20 '22 14:12 camilamacedo86