kubernetes / kubernetes/cloud-provider-openstack

[occm] Provide alternative way to define floatingIP instead of `spec.loadBalancerIP`

Open
#3,086 3 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

kind/feature
Dominant language
Go
Stars
720
Forks
687
Avg merge
1d 14h
Merged PRs (30d)
51

Description

/kind feature

What happened:
Currently in order to specify the floatingIP of a loadbalancer a user has to define:

...
spec:
  loadBalancerIP: 122.122.122.122
...

as documented in the docs. There is no other way to pass which floating-ip to use.

From k8s docs:

Note:
The.spec.loadBalancerIP field for a Service was deprecated in Kubernetes v1.24.
This field was under-specified and its meaning varies across implementations. It also cannot support dual-stack networking. This field may be removed in a future API version.
If you're integrating with a provider that supports specifying the load balancer IP address(es) for a Service via a (provider specific) annotation, you should switch to doing that.
If you are writing code for a load balancer integration with Kubernetes, avoid using this field. You can integrate with Gateway rather than Service, or you can define your own (provider specific) annotations on the Service that specify the equivalent detail.

We hit this issue when migrating from ingress to gateway API (Cilium provider) and there is no way to specify the floating-ip as cilium gateway api implementation ( and i expect more ) do not offer a way to set .spec.loadBalancerIP due to it being deprecated. I suspect this will become more of an issue as gateway gets adopted more and more.

It would be nice to have an alternative way to define which floating ip to use. Annotations can be a way to do that as at least the gateway CRD allows passing annotations to the service of type loadbalancer.

Anything else we need to know?:

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with docs/openstack-cloud-controller-manager/expose-applications-using-loadbalancer-type-service.md, the Kubernetes Service load balancer documentation, and the discussion in issue #2443. Compare how Gateway API implementations pass annotations to LoadBalancer Services and determine the required provider-specific behavior. Done should include a defined alternative that supports the relevant IPv4 and IPv6 cases and is documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
kubernetes
Domain
cloud
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.