The validation code is preforming validation for deprecated APIs that are used in the RBAC rules of a CSV. However, since rules don't have the concept of version the validation code is simply checking if the group and resource are being used in an RBAC and issuing a warning. This results in a warning that it's not correct and may lead developers to incorrectly update their RBAC.
Example: In the loki-operator in our CSV we have RBAC for that allows our operator to create poddisruptionbudgets. This results in the operator-sdk issuing the following warning, even thought our operator is using the latest versions of these APIs.
WARN[0000] Warning: Value loki-operator.v0.7.1: this bundle is using APIs which were deprecated and removed in v1.25. More info: https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-25. Migrate the API(s) for poddisruptionbudgets: (["ClusterServiceVersion.Spec.InstallStrategy.StrategySpec.ClusterPermissions[0].Rules[14]"])
My proposal would be to either:
- Remove from
deprecatedGroupResource all instances of resources where only their v1alpha1 or v1beta1 versions were deprecated, these lists should only contain resources that were actually removed/deprecated.
- Update the warning message so at least informs developers that this warning might be a false positive but they should regardless validate if their operator is using the latest version of these APIs
The validation code is preforming validation for deprecated APIs that are used in the RBAC rules of a CSV. However, since rules don't have the concept of
versionthe validation code is simply checking if thegroupandresourceare being used in an RBAC and issuing a warning. This results in a warning that it's not correct and may lead developers to incorrectly update their RBAC.Example: In the loki-operator in our CSV we have RBAC for that allows our operator to create
poddisruptionbudgets. This results in the operator-sdk issuing the following warning, even thought our operator is using the latest versions of these APIs.My proposal would be to either:
deprecatedGroupResourceall instances of resources where only theirv1alpha1orv1beta1versions were deprecated, these lists should only contain resources that were actually removed/deprecated.