Merge pull request #37353 from nikhiljindal/serviceDelete

Automatic merge from submit-queue

Stop deleting underlying services when federation service is deleted

Fixes https://github.com/kubernetes/kubernetes/issues/36799

Fixing federation service controller to not delete services from underlying clusters when federated service is deleted.
None of the federation controller should do this unless explicitly asked by the user using DeleteOptions. This is the only federation controller that does that.

cc @kubernetes/sig-cluster-federation @madhusudancs

```release-note
federation service controller: stop deleting services from underlying clusters when federated service is deleted.
```
This commit is contained in:
Kubernetes Submit Queue
2016-11-30 06:02:39 -08:00
committed by GitHub
2 changed files with 30 additions and 60 deletions

View File

@@ -113,6 +113,27 @@ var _ = framework.KubeDescribe("[Feature:Federation]", func() {
}()
waitForServiceShardsOrFail(nsName, service, clusters)
})
It("should not be deleted from underlying clusters when it is deleted", func() {
framework.SkipUnlessFederated(f.ClientSet)
nsName = f.FederationNamespace.Name
service = createServiceOrFail(f.FederationClientset_1_5, nsName, FederatedServiceName)
By(fmt.Sprintf("Successfully created federated service %q in namespace %q. Waiting for shards to appear in underlying clusters", service.Name, nsName))
waitForServiceShardsOrFail(nsName, service, clusters)
By(fmt.Sprintf("Deleting service %s", service.Name))
err := f.FederationClientset_1_5.Services(nsName).Delete(service.Name, &v1.DeleteOptions{})
framework.ExpectNoError(err, "Error deleting service %q in namespace %q", service.Name, service.Namespace)
By(fmt.Sprintf("Deletion of service %q in namespace %q succeeded.", service.Name, nsName))
By(fmt.Sprintf("Verifying that services in underlying clusters are not deleted"))
for clusterName, clusterClientset := range clusters {
_, err := clusterClientset.Core().Services(service.Namespace).Get(service.Name)
if err != nil {
framework.Failf("Unexpected error in fetching service %s in cluster %s, %s", service.Name, clusterName, err)
}
}
})
})
var _ = Describe("DNS", func() {
@@ -192,6 +213,15 @@ var _ = framework.KubeDescribe("[Feature:Federation]", func() {
for i, DNSName := range svcDNSNames {
discoverService(f, DNSName, true, "federated-service-e2e-discovery-pod-"+strconv.Itoa(i))
}
By("Verified that DNS rules are working as expected")
By("Deleting the service to verify that DNS rules still work")
err := f.FederationClientset_1_5.Services(nsName).Delete(FederatedServiceName, &v1.DeleteOptions{})
framework.ExpectNoError(err, "Error deleting service %q in namespace %q", service.Name, service.Namespace)
for i, DNSName := range svcDNSNames {
discoverService(f, DNSName, true, "federated-service-e2e-discovery-pod-"+strconv.Itoa(i))
}
By("Verified that deleting the service does not affect DNS records")
})
Context("non-local federated service", func() {