adding delete pod functionality

pull/154/head
Karolis Rusenas 2018-03-04 12:11:03 +00:00
parent 8b611f52d7
commit 9107e9d913
1 changed files with 18 additions and 0 deletions

View File

@ -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)