kubermatic / kubermatic

Kubermatic Kubernetes Platform - the Central Kubernetes Management Platform For Any Infrastructure
https://www.kubermatic.com
Other
1.07k stars 157 forks source link

[Openstack] Add option to specify use-octavia flag in cloud-config #6309

Closed irozzo-1A closed 3 years ago

irozzo-1A commented 3 years ago

User Story When using the external OpenStack CCM, the Octavia API is used by default.

On the other hand, the in-tree cloud provider for OpenStack relies on the Neutron API (deprecated). In order not to have problems during the migration between in-tree cloud-provider to external CCM it is important to provide the possibility of disabling the use of Octavia in order to minimize the risk, as the OpenStack may not support it.

https://github.com/kubernetes/cloud-provider-openstack/blob/master/docs/openstack-cloud-controller-manager/using-openstack-cloud-controller-manager.md#load-balancer

Acceptance criteria It is possible to disable the use of Octavia for LB in a user cluster.

Happy2C0de commented 3 years ago

Hi all Thanks for this issue, this is great! There are other Openstack cloud.conf options not configurable via the Seed configuration. ATM, one can change manage-security-groups but e.g. use-octavia are not configurable via the Seed k8s resource. Especially, the floating-network-id and subnet-id is not configured based on the network from the user cluster. This is different in the KubeOne project where the whole cloud.conf can be defined.

There are Openstack clusters that don't use Octavia yet because the Neutron LBaaS was supported until Openstack Train. What's the reason behind this? Or is there a possibility to change the cloud.conf after user-cluster creation? (even though this is bad user-experience) The reconciliation (I think by the seed-controller!?), pushes the configuration if one changes it.

Additionally, I opened another issue about Application Credential support for Openstack. https://github.com/kubermatic/kubermatic/issues/6527

irozzo-1A commented 3 years ago

Hi @Happy2C0de, thx for your comment.

There are Openstack clusters that don't use Octavia yet because the Neutron LBaaS was supported until Openstack Train. What's the reason behind this?

Yeah, the main reason for this is supporting Openstack installation where Octavia API is not yet available, and to reduce the risk during migrations between in-tree cloud provider to CCM, as the first one uses Neutron API as a default, while the second relies on Octavia.

Or is there a possibility to change the cloud.conf after user-cluster creation? (even though this is bad user-experience) The reconciliation (I think by the seed-controller!?), pushes the configuration if one changes it.

Actually changing cloud.conf after the cluster creation is not feasible as it requires 'pausing' the cluster.