Closed bshephar closed 3 years ago
I agree we could check lb-provider
to only allow octavia
(for backward compatibility) and amphora
, amphorav2
is still not production ready though.
I think it is probably best if we check for lb-provider
if it's NOT octavia or amphora, then we default to octavia or amphora? That way we aren't breaking if a use does specify something else and still giving our selves a chance at working.
Worst case scenario that I can think of then is that they didn't deploy the Amphora image (Like me who is just using OVN) and Octavia will fail to create the Load Balancer. But at least there wont be a Active load balancer in OpenStack that appears to have worked?
if it's NOT octavia or amphora, then we default to octavia or amphora?
We only need to check when occm is starting up, if lb-provider
is not supported, fail and exit.
Hey,
Sorry, I might have needed to include something extra in my commit message to have it linked to this Issue. Please advise if I'm missing something there. The relevant PR is:
And some artifacts from my change:
I1209 03:51:37.075114 1 controllermanager.go:127] Version: v0.0.0-master+$Format:%h$
W1209 03:51:37.075575 1 openstack.go:306] failed to read config: Unsupported LoadBalancer Provider: ovn
F1209 03:51:37.075641 1 controllermanager.go:131] Cloud provider could not be initialized: could not init cloud provider "openstack": Unsupported LoadBalancer Provider: ovn
goroutine 1 [running]:
Hmm, not too sure why that test is failing. Is it possible to get more info from this check?
2020-12-09 04:27:44.815992 | TASK [Wait for openstack-cloud-controller-manager up and running]
2020-12-09 04:32:37.756204 | ubuntu-bionic | ERROR
2020-12-09 04:32:37.756822 | ubuntu-bionic | {
2020-12-09 04:32:37.756913 | ubuntu-bionic | "attempts": 24,
2020-12-09 04:32:37.756992 | ubuntu-bionic | "delta": "0:00:06.699446",
2020-12-09 04:32:37.757115 | ubuntu-bionic | "end": "2020-12-09 04:32:37.701453",
2020-12-09 04:32:37.757191 | ubuntu-bionic | "msg": "non-zero return code",
2020-12-09 04:32:37.757264 | ubuntu-bionic | "rc": 1,
2020-12-09 04:32:37.757373 | ubuntu-bionic | "start": "2020-12-09 04:32:31.002007"
2020-12-09 04:32:37.757447 | ubuntu-bionic | }
Little more info:
"hosts": {
"ubuntu-bionic": {
"action": "command",
"attempts": 24,
"changed": true,
"cmd": "set -o pipefail\nsleep 5\nexport KUBECONFIG=/home/zuul/.kube/config\nkubectl -n kube-system get po | grep openstack-cloud-controller-manager | grep Running\n",
"delta": "0:00:06.699446",
"end": "2020-12-09 04:32:37.701453",
"failed": true,
"invocation": {
"module_args": {
"_raw_params": "set -o pipefail\nsleep 5\nexport KUBECONFIG=/home/zuul/.kube/config\nkubectl -n kube-system get po | grep openstack-cloud-controller-manager | grep Running\n",
"_uses_shell": true,
"argv": null,
"chdir": null,
"creates": null,
"executable": "/bin/bash",
"removes": null,
"stdin": null,
"warn": false,
"zuul_log_id": "fa163ef5-08f0-9bd5-2c7a-00000000001f-ubuntubionic"
}
},
"msg": "non-zero return code",
"rc": 1,
"start": "2020-12-09 04:32:31.002007",
"stderr": "",
"stderr_lines": [],
"stdout": "",
"stdout_lines": [],
"zuul_log_id": "fa163ef5-08f0-9bd5-2c7a-00000000001f-ubuntubionic"
Do we collect logs from these pods somewhere?
/kind bug
What happened: Setting
lb-provider=ovn
works, and allows the user to provision a Octavia OVN LoadBalancer, but breaks while creating the Listener. The configuration looks like so:However, it fails to create the Listener with the following error:
What you expected to happen: When a operator sets OVN as the provider, we will need to adjust the API request sent to Octavia to ensure the request is valid.
How to reproduce it:
[LoadBalancer]
section incloud.conf
type: LoadBalancer
allowed_cidr
option which is not supported by the OVN providerAnything else we need to know?: It looks like there are efforts to support this in the
ovn_octavia_provider
: https://opendev.org/openstack/ovn-octavia-provider/src/branch/master/ovn_octavia_provider/driver.py#L61-L69But this breaks for Kubernetes users attempting to use it. So I believe we either need to block
lb-provider=ovn
, or we need to create the listener withoutallowed_cidrs
.We can consider this a feature request if you prefer. But since it breaks for users, I raised this as a bug. Let me know if you need any additional logs
Environment: Kubernetes environment version is:
v1.19.0
This is the image I'm using for occm: https://hub.docker.com/layers/k8scloudprovider/openstack-cloud-controller-manager/latest/images/sha256-e9d3de3c0cbc6edca78f0e5ca0cdb7643af10225feed88fa6c1bdd90fc90139d?context=explore
OpenStack version: Victoria
Others: Octavia Version: