【发布时间】:2019-08-08 21:47:21
【问题描述】:
我正在尝试通过Go(lang)中的API修改OpenShift中persistent volume的yaml文件,我有以下内容
pv, err := clientset.CoreV1().PersistentVolumes().List(metav1.ListOptions{})
for _, persV := range pv.Items {
// Check status persistent volume
pvStatus, err := clientset.CoreV1().PersistentVolumes().Get(persV.Name, metav1.GetOptions{})
if err != nil {
panic(err.Error())
}
patch := []byte(`{"spec":{"template":{"spec":{"containers":[{"persistentVolumeReclaimPolicy":"Retain"}]}}}}`)
a := fmt.Sprintf("%s", patch)
fmt.Println(a)
_, err = clientset.CoreV1().PersistentVolumes().Patch(persV.Name, types.StrategicMergePatchType, patch)
}
我的persistent volumeyaml
apiVersion: v1
kind: PersistentVolume
metadata:
...
...
...
persistentVolumeReclaimPolicy: Retain
status:
phase: Released
如何获取yaml 文件并根据我的实际pvStatus 对其进行修改?
我想把persistentVolumeReclaimPolicy: Retain改成persistentVolumeReclaimPolicy: Delete
【问题讨论】:
标签: api go kubernetes openshift