Does K8S Persistent Volume change works with --record flag

1/5/2021

I have a persistent volume (PV) and persistent volume claim (PVC) which got bound as well. Initially, the storage capacity was 2Gi for the PV and the requested storage from PVC was 1Gi. I then edit the existing bound PV and increased the storage to 5Gi with the record flag as --record.

vagrant@mykubemaster:~/my-k8s$ kubectl get pv
NAME    CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM         STORAGECLASS   REASON   AGE
my-pv   2Gi        RWO            Retain           Bound    test/my-pvc                           106s

vagrant@mykubemaster:~/my-k8s$ kubectl edit pv my-pv --record

persistentvolume/my-pv edited
vagrant@mykubemaster:~/my-k8s$ kubectl get pv
NAME    CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM         STORAGECLASS   REASON   AGE
my-pv   5Gi        RWO            Retain           Bound    test/my-pvc                           2m37s

Now my question is if there is any way by which I can confirm that this --record flag have certainly recorded this storage change (edit PV) in history.

With deployments, it is easy to check with the kubectl rollout history <deployment name> but I'm not sure how to check this with other objects like PV.

Please assist. thanks

-- vinod827
kubectl
kubernetes
persistent-volume-claims
persistent-volumes

1 Answer

1/5/2021

As mentioned in kubectl references docs:

Record current kubectl command in the resource annotation. If set to false, do not record the command. If set to true, record the command. If not set, default to updating the existing annotation value only if one already exists.

You can run kubectl get pv my-pv -o yaml and you should see that kubernetes.io/change-cause was updated with the command that you ran. In your case, it will be kubectl edit pv my-pv --record.

The rollout command that you mentioned (including rollout history) works only with the following resources:

  • deployments
  • daemonsets
  • statefulsets
-- hilsenrat
Source: StackOverflow