// deleteAllContent will delete all content known to the system in a namespace. It returns an estimate // of the time remaining before the remaining resources are deleted. If estimate > 0 not all resources // are guaranteed to be gone. func deleteAllContent(kubeClient clientset.Interface, versions *unversioned.APIVersions, namespace string, before unversioned.Time) (estimate int64, err error) { err = deleteServiceAccounts(kubeClient, namespace) if err != nil { return estimate, err } err = deleteServices(kubeClient, namespace) if err != nil { return estimate, err } err = deleteReplicationControllers(kubeClient, namespace) if err != nil { return estimate, err } estimate, err = deletePods(kubeClient, namespace, before) if err != nil { return estimate, err } err = deleteSecrets(kubeClient, namespace) if err != nil { return estimate, err } err = deletePersistentVolumeClaims(kubeClient, namespace) if err != nil { return estimate, err } err = deleteLimitRanges(kubeClient, namespace) if err != nil { return estimate, err } err = deleteResourceQuotas(kubeClient, namespace) if err != nil { return estimate, err } err = deleteEvents(kubeClient, namespace) if err != nil { return estimate, err } // If experimental mode, delete all experimental resources for the namespace. if containsVersion(versions, "extensions/v1beta1") { resources, err := kubeClient.Discovery().ServerResourcesForGroupVersion("extensions/v1beta1") if err != nil { return estimate, err } if containsResource(resources, "horizontalpodautoscalers") { err = deleteHorizontalPodAutoscalers(kubeClient.Extensions(), namespace) if err != nil { return estimate, err } } if containsResource(resources, "ingresses") { err = deleteIngress(kubeClient.Extensions(), namespace) if err != nil { return estimate, err } } if containsResource(resources, "daemonsets") { err = deleteDaemonSets(kubeClient.Extensions(), namespace) if err != nil { return estimate, err } } if containsResource(resources, "jobs") { err = deleteJobs(kubeClient.Extensions(), namespace) if err != nil { return estimate, err } } if containsResource(resources, "deployments") { err = deleteDeployments(kubeClient.Extensions(), namespace) if err != nil { return estimate, err } } } return estimate, nil }