By setting loadbalancer_apiserver_localhost to false we tell the
kubelets to register with 1st master rather than assuming there's an
API proxy running on each host.
Also Kubespray expects a specific format of inventory because it tries
to enforce that hostname matches the invenotry name of the node. This
previously resulted in incorrect hostnames being set.
And we also open the necessary firewall ports to allow the cluster to
Add external_deploy_tasks for Kubespray installation. This makes
Kubespray installation work with the config download mechanism.
If the undercloud doesn't already contain /usr/share/kubespray
directory, it will be git-cloned. This is to bridge a gap before we
figure out where we get Kubespray RPM from.
Co-Authored-By: Flavio Percoco <firstname.lastname@example.org>