mirror of https://github.com/k3s-io/k3s
Merge pull request #60980 from n-marton/master
Automatic merge from submit-queue (batch tested with PRs 60980, 61273, 60811, 61021, 61367). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. fix for openstack member cleanup for multiple port cases **What this PR does / why we need it**: Fixing an openstack lb issue. **Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*: Fixes: #60976 **Special notes for your reviewer**: The problem with the code was that if multiple ports were exposed then that created multiple members for each listener, and the deletion process iterated over each listener with an array of every member resulting listener - member mismatch, which caused not found exception from lbaasv2. **Release note**: ```release-note ```pull/8/head
commit
d383ca1062
|
@ -1424,18 +1424,6 @@ func (lbaas *LbaasV2) EnsureLoadBalancerDeleted(ctx context.Context, clusterName
|
|||
}
|
||||
}
|
||||
|
||||
// get all members associated with each poolIDs
|
||||
var memberIDs []string
|
||||
for _, pool := range poolIDs {
|
||||
membersList, err := getMembersByPoolID(lbaas.lb, pool)
|
||||
if err != nil && !isNotFound(err) {
|
||||
return fmt.Errorf("error getting pool members %s: %v", pool, err)
|
||||
}
|
||||
for _, member := range membersList {
|
||||
memberIDs = append(memberIDs, member.ID)
|
||||
}
|
||||
}
|
||||
|
||||
// delete all monitors
|
||||
for _, monitorID := range monitorIDs {
|
||||
err := v2monitors.Delete(lbaas.lb, monitorID).ExtractErr()
|
||||
|
@ -1450,9 +1438,14 @@ func (lbaas *LbaasV2) EnsureLoadBalancerDeleted(ctx context.Context, clusterName
|
|||
|
||||
// delete all members and pools
|
||||
for _, poolID := range poolIDs {
|
||||
// get members for current pool
|
||||
membersList, err := getMembersByPoolID(lbaas.lb, poolID)
|
||||
if err != nil && !isNotFound(err) {
|
||||
return fmt.Errorf("error getting pool members %s: %v", poolID, err)
|
||||
}
|
||||
// delete all members for this pool
|
||||
for _, memberID := range memberIDs {
|
||||
err := v2pools.DeleteMember(lbaas.lb, poolID, memberID).ExtractErr()
|
||||
for _, member := range membersList {
|
||||
err := v2pools.DeleteMember(lbaas.lb, poolID, member.ID).ExtractErr()
|
||||
if err != nil && !isNotFound(err) {
|
||||
return err
|
||||
}
|
||||
|
@ -1463,7 +1456,7 @@ func (lbaas *LbaasV2) EnsureLoadBalancerDeleted(ctx context.Context, clusterName
|
|||
}
|
||||
|
||||
// delete pool
|
||||
err := v2pools.Delete(lbaas.lb, poolID).ExtractErr()
|
||||
err = v2pools.Delete(lbaas.lb, poolID).ExtractErr()
|
||||
if err != nil && !isNotFound(err) {
|
||||
return err
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue