Google Cloud Kubernetes Persistent Volume Claim error in deployment Yaml

10/15/2019

I have a persistent volume claim file, which previously was being read by buildkite in the deployment stage. Only recently it has been erroring in the build process with this error:

error: error validating "kube/common/01-redis-volume-claim.yml": error validating data: field
spec.dataSource for v1.PersistentVolumeClaimSpec is required; if you choose to ignore these
errors, turn validation off with --validate=false

I've seen this issue crop up twice recently, and the immediate fix is to add the missing field (spec.dataSource) and setting it to null.

My question is, if it was absent in the first instance, then will setting it to null be any different than what it was previously?

-- ugotchi
google-cloud-platform
kubernetes
persistent-volume-claims
persistent-volumes

1 Answer

10/15/2019

Based on documentation

spec.dataSource should have:

name: existing-src-pvc-name

kind: PersistentVolumeClaim

In my opinion everything you should do is add name and kind to your yaml file and there should not be any error anymore.

My question is, if it was absent in the first instance, then will setting it to null be any different than what it was previously?

Answering to this question, as far as I am concerned it is happening because you are not creating a new pvc, but you are likely to cloning it.

Volume clone feature was added to support CSI Volume Plugins only. For details, see volume cloning.

The CSI Volume Cloning feature adds support for specifying existing PVCs in the dataSource field to indicate a user would like to clone a Volume.

-- jt97
Source: StackOverflow