Delete persistent volumes on deletion of the cluster.

This commit is contained in:
Oleksii Kliukin
2017-05-12 11:41:26 +02:00
committed by Murat Kabilov
parent caa0eab19b
commit 033c28f03a
2 changed files with 31 additions and 0 deletions
+4
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
}
+27
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,