mirror of
https://github.com/zalando/postgres-operator.git
synced 2026-10-19 06:15:18 +02:00
Delete persistent volumes on deletion of the cluster.
This commit is contained in:
committed by
Murat Kabilov
parent
caa0eab19b
commit
033c28f03a
@@ -258,6 +258,10 @@ func (c *Cluster) Delete() error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Can't delete pods: %s", err)
|
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
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,6 +41,33 @@ func (c *Cluster) deletePods() error {
|
|||||||
return nil
|
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 {
|
func (c *Cluster) deletePod(pod *v1.Pod) error {
|
||||||
podName := spec.PodName{
|
podName := spec.PodName{
|
||||||
Namespace: pod.Namespace,
|
Namespace: pod.Namespace,
|
||||||
|
|||||||
Reference in New Issue
Block a user