From 9107e9d9134f7741486764b3d82e40e674dd68de Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Sun, 4 Mar 2018 12:11:03 +0000 Subject: [PATCH] adding delete pod functionality --- provider/kubernetes/implementer.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/provider/kubernetes/implementer.go b/provider/kubernetes/implementer.go index 93c633a7..2913f576 100644 --- a/provider/kubernetes/implementer.go +++ b/provider/kubernetes/implementer.go @@ -20,11 +20,16 @@ import ( // Implementer - thing wrapper around currently used k8s APIs type Implementer interface { Namespaces() (*v1.NamespaceList, error) + Deployment(namespace, name string) (*v1beta1.Deployment, error) Deployments(namespace string) (*v1beta1.DeploymentList, error) Update(deployment *v1beta1.Deployment) error + Secret(namespace, name string) (*v1.Secret, error) + Pods(namespace, labelSelector string) (*v1.PodList, error) + DeletePod(namespace, name string, opts *meta_v1.DeleteOptions) error + ConfigMaps(namespace string) core_v1.ConfigMapInterface } @@ -103,6 +108,14 @@ func (i *KubernetesImplementer) Deployments(namespace string) (*v1beta1.Deployme // Update - update deployment func (i *KubernetesImplementer) Update(deployment *v1beta1.Deployment) error { + // retryErr := retry.RetryOnConflict(retry.DefaultRetry, func() error { + // // Retrieve the latest version of Deployment before attempting update + // // RetryOnConflict uses exponential backoff to avoid exhausting the apiserver + // _, updateErr := i.client.Extensions().Deployments(deployment.Namespace).Update(deployment) + // return updateErr + // }) + // return retryErr + _, err := i.client.Extensions().Deployments(deployment.Namespace).Update(deployment) return err } @@ -118,6 +131,11 @@ func (i *KubernetesImplementer) Pods(namespace, labelSelector string) (*v1.PodLi return i.client.Core().Pods(namespace).List(meta_v1.ListOptions{LabelSelector: labelSelector}) } +// DeletePod - delete pod by name +func (i *KubernetesImplementer) DeletePod(namespace, name string, opts *meta_v1.DeleteOptions) error { + return i.client.Core().Pods(namespace).Delete(name, opts) +} + // ConfigMaps - returns an interface to config maps for a specified namespace func (i *KubernetesImplementer) ConfigMaps(namespace string) core_v1.ConfigMapInterface { return i.client.Core().ConfigMaps(namespace)