Delete persistent volumes on deletion of the cluster.

This commit is contained in:
Oleksii Kliukin 2017-03-08 12:22:35 +01:00 committed by Murat Kabilov
parent caa0eab19b
commit 033c28f03a
2 changed files with 31 additions and 0 deletions

View File

@ -258,6 +258,10 @@ func (c *Cluster) Delete() error {
if err != nil {
return fmt.Errorf("Can't delete pods: %s", err)
}
err = c.deletePersistenVolumeClaims()
if err != nil {
return fmt.Errorf("Can't delete PersistentVolumeClains: %s", err)
}
return nil
}

View File

@ -41,6 +41,33 @@ func (c *Cluster) deletePods() error {
return nil
}
func (c *Cluster) listPersistentVolumeClaims() ([]v1.PersistentVolumeClaim, error) {
ns := c.Metadata.Namespace
listOptions := v1.ListOptions{
LabelSelector: c.labelsSet().String(),
}
pvcs, err := c.config.KubeClient.PersistentVolumeClaims(ns).List(listOptions)
if err != nil {
return nil, fmt.Errorf("Can't get list of PersistentVolumeClaims: %s", err)
}
return pvcs.Items, nil
}
func (c *Cluster) deletePersistenVolumeClaims() error {
ns := c.Metadata.Namespace
pvcs, err := c.listPersistentVolumeClaims()
if err != nil {
return err
}
for _, pvc := range pvcs {
if err := c.config.KubeClient.PersistentVolumeClaims(ns).Delete(pvc.Name, deleteOptions); err != nil {
c.logger.Warningf("Can't delete PersistentVolumeClaim: %s", err)
}
}
return nil
}
func (c *Cluster) deletePod(pod *v1.Pod) error {
podName := spec.PodName{
Namespace: pod.Namespace,