Merge pull request #816 from thebsdbox/interface_annotation

Adds annotation support for service interfaces.
This commit is contained in:
Daniel Finneran
2024-04-18 11:00:33 +01:00
committed by GitHub
2 changed files with 3 additions and 1 deletions

View File

@@ -44,6 +44,7 @@ func NewInstance(svc *v1.Service, config *kubevip.Config) (*Instance, error) {
// Detect if we're using a specific interface for services
var serviceInterface string
config.ServicesInterface = svc.Annotations[serviceInterface] // If the service has a specific interface defined, then use it
if config.ServicesInterface != "" {
serviceInterface = config.ServicesInterface
} else {

View File

@@ -30,6 +30,7 @@ const (
flushContrack = "kube-vip.io/flush-conntrack"
loadbalancerIPAnnotation = "kube-vip.io/loadbalancerIPs"
loadbalancerHostname = "kube-vip.io/loadbalancerHostname"
serviceInterface = "kube-vip.io/serviceInterface"
)
func (sm *Manager) syncServices(_ context.Context, svc *v1.Service, wg *sync.WaitGroup) error {
@@ -135,7 +136,7 @@ func (sm *Manager) addService(svc *v1.Service) error {
log.Debugf("(svcs) will update [%s/%s]", newService.serviceSnapshot.Namespace, newService.serviceSnapshot.Name)
if err := sm.updateStatus(newService); err != nil {
// delete service to collect garbage
if deleteErr := sm.deleteService(newService.UID); err != nil {
if deleteErr := sm.deleteService(newService.UID); deleteErr != nil {
return deleteErr
}
return err