Added ability to mount external PVCs to cdap deployments and statefulsets
There is a requirement to mount read-write storage for saving securestore file and custom jar for authorization. We are not able to use secretVolume and configMap because they are read-only and limited by maximal size of content.
So was decided to add property for mounting existing k8s PVCs to CDAP statefulsets and deployments.This feature has a similar design to secretVolume and configMap mounting features.
Example of usage:
spec:
...
config:
security.authorization.extension.jar.path: "/etc/securestorage/cdap-authorization-ldap-role.jar"
...
pvcVolumes:
task-pv-claim: "/etc/securestorage"
In this case pvc with name task-pv-claim will be mounted to /etc/securestorage for all CDAP pods.
Testing:
cdap-operator was built:
sudo docker build . -t cdap-operator-pvc:0.0.1
and used to setup file-based securestore and custom ldap based authorization on CDAP v6.5.0.
Unit testing:
go test ./... -coverprofile cover.out
? cdap.io/cdap-operator [no test files]
? cdap.io/cdap-operator/api/v1alpha1 [no test files]
ok cdap.io/cdap-operator/controllers 8.509s coverage: 61.5% of statements
? cdap.io/cdap-operator/controllers/cdapmaster [no test files]
We found a Contributor License Agreement for you (the sender of this pull request), but were unable to find agreements for all the commit author(s) or Co-authors. If you authored these, maybe you used a different email address in the git commits than was used to sign the CLA (login here to double check)? If these were authored by someone else, then they will need to sign a CLA as well, and confirm that they're okay with these being contributed to Google.
In order to pass this check, please resolve this problem and then comment @googlebot I fixed it.. If the bot doesn't comment, it means it doesn't think anything has changed.
ℹ️ Googlers: Go here for more info.