mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-31 07:20:13 +00:00
Fix cleanupServiceShardLoadBalancer
This commit is contained in:
parent
605b106d2d
commit
f81c1e6702
@ -18,6 +18,7 @@ package framework
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
@ -231,3 +232,9 @@ func restConfigForCluster(clusterConf *clusterConfig) *restclient.Config {
|
||||
framework.ExpectNoError(err, fmt.Sprintf("Error creating client for cluster %q: %+v", clusterConf.name, err))
|
||||
return restConfig
|
||||
}
|
||||
|
||||
func GetZoneFromClusterName(clusterName string) string {
|
||||
// Ref: https://github.com/kubernetes/kubernetes/blob/master/cluster/kube-util.sh#L55
|
||||
prefix := "federation-e2e-" + framework.TestContext.Provider + "-"
|
||||
return strings.TrimPrefix(clusterName, prefix)
|
||||
}
|
||||
|
@ -27,9 +27,9 @@ import (
|
||||
"k8s.io/apimachinery/pkg/util/wait"
|
||||
federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1"
|
||||
fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_clientset"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/clientset"
|
||||
"k8s.io/kubernetes/pkg/cloudprovider"
|
||||
"k8s.io/kubernetes/test/e2e/common"
|
||||
"k8s.io/kubernetes/test/e2e/framework"
|
||||
fedframework "k8s.io/kubernetes/test/e2e_federation/framework"
|
||||
@ -243,16 +243,18 @@ func cleanupServiceShardsAndProviderResources(namespace string, service *v1.Serv
|
||||
continue
|
||||
}
|
||||
|
||||
if cSvc.Spec.Type == v1.ServiceTypeLoadBalancer {
|
||||
// In federation tests, e2e zone names are used to derive federation member cluster names
|
||||
zone := fedframework.GetZoneFromClusterName(name)
|
||||
serviceLBName := cloudprovider.GetLoadBalancerName(cSvc)
|
||||
framework.Logf("cleaning cloud provider resource for service %q in namespace %q, in cluster %q", service.Name, namespace, name)
|
||||
framework.CleanupServiceResources(serviceLBName, zone)
|
||||
}
|
||||
|
||||
err = cleanupServiceShard(c.Clientset, name, namespace, cSvc, fedframework.FederatedDefaultTestTimeout)
|
||||
if err != nil {
|
||||
framework.Logf("Failed to delete service %q in namespace %q, in cluster %q: %v", service.Name, namespace, name, err)
|
||||
}
|
||||
if service.Spec.Type == v1.ServiceTypeLoadBalancer {
|
||||
err = cleanupServiceShardLoadBalancer(name, cSvc, fedframework.FederatedDefaultTestTimeout)
|
||||
if err != nil {
|
||||
framework.Logf("Failed to delete cloud provider resources for service %q in namespace %q, in cluster %q, err: %v", service.Name, namespace, name, err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -270,35 +272,6 @@ func cleanupServiceShard(clientset *kubeclientset.Clientset, clusterName, namesp
|
||||
return err
|
||||
}
|
||||
|
||||
func cleanupServiceShardLoadBalancer(clusterName string, service *v1.Service, timeout time.Duration) error {
|
||||
provider := framework.TestContext.CloudConfig.Provider
|
||||
if provider == nil {
|
||||
return fmt.Errorf("cloud provider undefined")
|
||||
}
|
||||
|
||||
internalSvc := &v1.Service{}
|
||||
err := api.Scheme.Convert(service, internalSvc, nil)
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to convert versioned service object to internal type: %v", err)
|
||||
}
|
||||
|
||||
err = wait.PollImmediate(framework.Poll, timeout, func() (bool, error) {
|
||||
lbi, supported := provider.LoadBalancer()
|
||||
if !supported {
|
||||
return false, fmt.Errorf("%q doesn't support load balancers", provider.ProviderName())
|
||||
}
|
||||
err := lbi.EnsureLoadBalancerDeleted(clusterName, internalSvc)
|
||||
if err != nil {
|
||||
// Deletion failed with an error, try again.
|
||||
framework.Logf("Failed to delete cloud provider resources for service %q in namespace %q, in cluster %q: %v", service.Name, service.Namespace, clusterName, err)
|
||||
return false, nil
|
||||
}
|
||||
By(fmt.Sprintf("Cloud provider resources for Service %q in namespace %q in cluster %q deleted", service.Name, service.Namespace, clusterName))
|
||||
return true, nil
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
||||
func podExitCodeDetector(f *fedframework.Framework, name, namespace string, code int32) func() error {
|
||||
// If we ever get any container logs, stash them here.
|
||||
logs := ""
|
||||
|
Loading…
Reference in New Issue
Block a user