mayadata-io / openebs-upgrade

Operator for OpenEBS
2 stars 5 forks source link

[Fix]Resolved volumesnapshot CRDs issue & refactored openebs-operator yamls #72

Closed Ab-hishek closed 3 years ago

Ab-hishek commented 3 years ago

Bug:

The issue is related to volumesnapshot CRDs annotations field. The following output highlights the exact issue which we were facing in OpenEBS 2.6.0 & 2.7.0 versions w.r.t. the CRDs after k8s made it compulsive to have a approved annotations in case of k8s api group.

CustomResourceDefinition.apiextensions.k8s.io "volumesnapshots.snapshot.storage.k8s.io" is invalid: metadata.annotations[api-approved.kubernetes.io]: Required value: protected groups must have approval annotation "api-approved.kubernetes.io", see https://github.com/kubernetes/enhancements/pull/1111 

CustomResourceDefinition.apiextensions.k8s.io "volumesnapshotclasses.snapshot.storage.k8s.io" is invalid: metadata.annotations[api-approved.kubernetes.io]: Required value: protected groups must have approval annotation "api-approved.kubernetes.io", see https://github.com/kubernetes/enhancements/pull/1111 

CustomResourceDefinition.apiextensions.k8s.io "volumesnapshotcontents.snapshot.storage.k8s.io" is invalid: metadata.annotations[api-approved.kubernetes.io]: Required value: protected groups must have approval annotation "api-approved.kubernetes.io", see https://github.com/kubernetes/enhancements/pull/1111

Fix:

In the getDesiredManifests function for CRDs we were setting the annotations that refers to the instance which triggered creation of this CustomResourceDefinition which was overwritting the annotations already present. So to fix this we are now appending the new annotation value to the existing ones.

Also this PR refactors the openebs-operator-2.6.0.yaml & openebs-operator-2.7.0.yaml files since these contains redundant components in them.