mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-07-17 11:28:58 +00:00
pkg/proxy/nftables: fix kube-proxy crash with newer nftables versions
Fixes kube-proxy's nftables mode to work on systems with nft 1.1.3.
This commit is contained in:
@@ -1109,24 +1109,20 @@ func (proxier *Proxier) syncProxyRules() (retryError error) {
|
||||
ipvX_addr = "ipv6_addr"
|
||||
}
|
||||
|
||||
var err error
|
||||
|
||||
var existingChains sets.Set[string]
|
||||
existingChainsList, err := proxier.nftables.List(context.TODO(), "chain")
|
||||
if err == nil {
|
||||
existingChains = sets.New(existingChainsList...)
|
||||
} else {
|
||||
proxier.logger.Error(err, "Failed to list existing chains")
|
||||
}
|
||||
var existingAffinitySets sets.Set[string]
|
||||
existingSets, err := proxier.nftables.List(context.TODO(), "sets")
|
||||
if err == nil {
|
||||
if allObjects, err := proxier.nftables.ListAll(context.TODO()); err == nil {
|
||||
existingChains = sets.New(allObjects["chain"]...)
|
||||
existingAffinitySets = sets.New[string]()
|
||||
for _, set := range existingSets {
|
||||
for _, set := range allObjects["set"] {
|
||||
if isAffinitySetName(set) {
|
||||
existingAffinitySets.Insert(set)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
proxier.logger.Error(err, "Failed to list existing sets")
|
||||
proxier.logger.Error(err, "Failed to list existing nftables objects")
|
||||
}
|
||||
|
||||
// Accumulate service/endpoint chains and affinity sets to keep.
|
||||
|
||||
Reference in New Issue
Block a user