kubernetes-sigs / cloud-provider-equinix-metal

Kubernetes Cloud Provider for Equinix Metal (formerly Packet Cloud Controller Manager)
https://deploy.equinix.com/labs/cloud-provider-equinix-metal
Apache License 2.0
75 stars 27 forks source link

Support shared IP assignment for MetalLB CRDs #579

Open TimJones opened 1 month ago

TimJones commented 1 month ago

We need to use MetalLB CRDs as our cluster has too many Services defined to fit into the old ConfigMap structure. These Services all share the same IP, but CPEM currently doesn't support this as indicated by this TODO

https://github.com/kubernetes-sigs/cloud-provider-equinix-metal/blob/0de9ce30d51c73335850283b04f4e8c8d1f22e97/metal/loadbalancers/metallb/cr.go#L155-L156

My initial idea would be to add another label to the IPAddressPool created by CPEM to indicate that the original Service has the official MetalLB shared IP annotation, and check when adding a new IPAddressPool one already exists with the matching key, in which case we add the service label and key to the existing IPAddressPool.

abant07 commented 1 month ago

Hey @TimJones

I am new to contributing to Kubernetes, and I read through the community documentation on how to get started. It led to me to the good first issues, and this issue seemed interesting to me. I was wondering how I can get started on this, I would like to work on it.

Do I just assign myself? Are there some environments I need to spin up on my local computer to contribute?

Also, I saw in the documentation there is a Contributor License Agreement to submit PRs, where do I fill that out?

Thanks! Amogh