This adds the ability for the integrator charm to create load balancers
for applications related to the loadbalancer relation endpoint. This
can be used, for example, by the Charmed Kubernetes bundle to replace
the kubeapi-load-balancer charm with a native OpenStack load balancer.
Fix API version not being detected correctly in some cases (#20)
* Fix API version not being detected correctly in some cases
It seems that the openstackclients CLI doesn't always properly detect
the version when it is not explicitly specified, so we need to do it
ourselves. This also makes errors while trying to detect Octavia
non-fatal and prevents useful error messages from being hidden from the
logs.
We previously ignored the version from the creds (if available), but #18
added handling for that. The cached creds from before the upgrade did
not contain it and caused a KeyError.
Also updated the description of `bs-version` to call out that it is
specifically a block storage setting, rather than an override for the
API version generally.
* Switch from openstacksdk library to openstackclients snap
The `openstacksdk` library depends on some crypto libraries which end up
requiring compilation during `charm build` and this causes errors when
using the `charm` snap. This switches to the CLI `openstackclients` snap
instead to avoid that issue.