mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-08 11:38:15 +00:00
Merge pull request #116732 from czybjtu/cleanup_map_to_sets
Cleanup: use Set instead of map in endpointSlice utils
This commit is contained in:
commit
3fbf67a403
@ -80,7 +80,7 @@ func (r *reconciler) reconcile(service *corev1.Service, pods []*corev1.Pod, exis
|
||||
// for further adjustment
|
||||
for _, existingSlice := range existingSlices {
|
||||
// service no longer supports that address type, add it to deleted slices
|
||||
if _, ok := serviceSupportedAddressesTypes[existingSlice.AddressType]; !ok {
|
||||
if !serviceSupportedAddressesTypes.Has(existingSlice.AddressType) {
|
||||
if r.topologyCache != nil {
|
||||
svcKey, err := serviceControllerKey(existingSlice)
|
||||
if err != nil {
|
||||
@ -413,9 +413,9 @@ func (r *reconciler) reconcileByPortMapping(
|
||||
endpointMeta *endpointMeta,
|
||||
) ([]*discovery.EndpointSlice, []*discovery.EndpointSlice, []*discovery.EndpointSlice, int, int) {
|
||||
slicesByName := map[string]*discovery.EndpointSlice{}
|
||||
sliceNamesUnchanged := sets.String{}
|
||||
sliceNamesToUpdate := sets.String{}
|
||||
sliceNamesToDelete := sets.String{}
|
||||
sliceNamesUnchanged := sets.New[string]()
|
||||
sliceNamesToUpdate := sets.New[string]()
|
||||
sliceNamesToDelete := sets.New[string]()
|
||||
numRemoved := 0
|
||||
|
||||
// 1. Iterate through existing slices to delete endpoints no longer desired
|
||||
|
@ -302,8 +302,8 @@ func (sl endpointSliceEndpointLen) Less(i, j int) bool {
|
||||
}
|
||||
|
||||
// returns a map of address types used by a service
|
||||
func getAddressTypesForService(service *v1.Service) map[discovery.AddressType]struct{} {
|
||||
serviceSupportedAddresses := make(map[discovery.AddressType]struct{})
|
||||
func getAddressTypesForService(service *v1.Service) sets.Set[discovery.AddressType] {
|
||||
serviceSupportedAddresses := sets.New[discovery.AddressType]()
|
||||
// TODO: (khenidak) when address types are removed in favor of
|
||||
// v1.IPFamily this will need to be removed, and work directly with
|
||||
// v1.IPFamily types
|
||||
@ -312,15 +312,15 @@ func getAddressTypesForService(service *v1.Service) map[discovery.AddressType]st
|
||||
// as it gets deprecated
|
||||
for _, family := range service.Spec.IPFamilies {
|
||||
if family == v1.IPv4Protocol {
|
||||
serviceSupportedAddresses[discovery.AddressTypeIPv4] = struct{}{}
|
||||
serviceSupportedAddresses.Insert(discovery.AddressTypeIPv4)
|
||||
}
|
||||
|
||||
if family == v1.IPv6Protocol {
|
||||
serviceSupportedAddresses[discovery.AddressTypeIPv6] = struct{}{}
|
||||
serviceSupportedAddresses.Insert(discovery.AddressTypeIPv6)
|
||||
}
|
||||
}
|
||||
|
||||
if len(serviceSupportedAddresses) > 0 {
|
||||
if serviceSupportedAddresses.Len() > 0 {
|
||||
return serviceSupportedAddresses // we have found families for this service
|
||||
}
|
||||
|
||||
@ -344,7 +344,7 @@ func getAddressTypesForService(service *v1.Service) map[discovery.AddressType]st
|
||||
if utilnet.IsIPv6String(service.Spec.ClusterIP) {
|
||||
addrType = discovery.AddressTypeIPv6
|
||||
}
|
||||
serviceSupportedAddresses[addrType] = struct{}{}
|
||||
serviceSupportedAddresses.Insert(addrType)
|
||||
klog.V(2).Infof("couldn't find ipfamilies for service: %v/%v. This could happen if controller manager is connected to an old apiserver that does not support ip families yet. EndpointSlices for this Service will use %s as the IP Family based on familyOf(ClusterIP:%v).", service.Namespace, service.Name, addrType, service.Spec.ClusterIP)
|
||||
return serviceSupportedAddresses
|
||||
}
|
||||
@ -354,14 +354,14 @@ func getAddressTypesForService(service *v1.Service) map[discovery.AddressType]st
|
||||
// if the service is headless with no selector, then this will remain the case
|
||||
// if the service is headless with selector then chances are pods are still using single family
|
||||
// since kubelet will need to restart in order to start patching pod status with multiple ips
|
||||
serviceSupportedAddresses[discovery.AddressTypeIPv4] = struct{}{}
|
||||
serviceSupportedAddresses[discovery.AddressTypeIPv6] = struct{}{}
|
||||
serviceSupportedAddresses.Insert(discovery.AddressTypeIPv4)
|
||||
serviceSupportedAddresses.Insert(discovery.AddressTypeIPv6)
|
||||
klog.V(2).Infof("couldn't find ipfamilies for headless service: %v/%v likely because controller manager is likely connected to an old apiserver that does not support ip families yet. The service endpoint slice will use dual stack families until api-server default it correctly", service.Namespace, service.Name)
|
||||
return serviceSupportedAddresses
|
||||
}
|
||||
|
||||
func unchangedSlices(existingSlices, slicesToUpdate, slicesToDelete []*discovery.EndpointSlice) []*discovery.EndpointSlice {
|
||||
changedSliceNames := sets.String{}
|
||||
changedSliceNames := sets.New[string]()
|
||||
for _, slice := range slicesToUpdate {
|
||||
changedSliceNames.Insert(slice.Name)
|
||||
}
|
||||
@ -402,7 +402,7 @@ func managedByChanged(endpointSlice1, endpointSlice2 *discovery.EndpointSlice) b
|
||||
// managedByController returns true if the controller of the provided
|
||||
// EndpointSlices is the EndpointSlice controller.
|
||||
func managedByController(endpointSlice *discovery.EndpointSlice) bool {
|
||||
managedBy, _ := endpointSlice.Labels[discovery.LabelManagedBy]
|
||||
managedBy := endpointSlice.Labels[discovery.LabelManagedBy]
|
||||
return managedBy == controllerName
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user