Required: Mark one of the following that is applicable:
[x] kind/feature
[ ] kind/improvement
[ ] kind/deprecation
[ ] kind/documentation
[ ] kind/clean-up
[ ] kind/bug
[ ] kind/other
Optional: Mark one or more of the following that are applicable:
[ ] kind/admin-change
[ ] kind/dev-change
[ ] kind/security
[ ] [kind/adr]()
What does this PR do / why do we need this PR?
With Linux kernel 5.4 (which shipped, for example, with Ubuntu 20.04 LTS) several new Ceph RBD image features was implemented. The rook-ceph defaults, however, does not reflect this fact, and the existing default ("layering") is recommended only for kernels prior to 5.4. Adding the ability to set "imageFeatures" defaults when deploying rook-ceph aims to mitigate this.
From rook-ceph's documentation:
"Rook's default RBD configuration specifies only the layering feature, for broad compatibility with older kernels. If your Kubernetes nodes run a 5.4 or later kernel, additional feature flags can be enabled in the storage class. The fast-diff and object-map features are especially useful."
This change will not, however, change existing default behavior.
Additional information to reviewers
Changing parameters to an already existing storage storageclass is not allowed.
Screenshots
Checklist
[ ] Proper commit message prefix on all commits
Change checks:
[ ] The change is transparent
[ ] The change is disruptive
[ ] The change requires no migration steps
[ ] The change requires migration steps
Metrics checks:
[x] The metrics are still exposed and present in Grafana after the change
[x] The metrics names didn't change (Grafana dashboards and Prometheus alerts are not affected)
[x] The metrics names did change (Grafana dashboards and Prometheus alerts were fixed)
Logs checks:
[x] The logs do not show any errors after the change
Network Policy checks:
[x] Any changed pod is covered by Network Policies
[x] The change does not cause any dropped packages in the NetworkPolicy Dashboard
Pod Security Policy checks:
[x] Any changed pod is covered by Pod Security Admission
[ x Any changed pod is covered by Gatekeeper Pod Security Policies
[x] The change does not cause any pods to be blocked by Pod Security Admission or Policies
Falco checks:
[x] The change does not cause any alerts to be generated by Falco
What kind of PR is this?
Required: Mark one of the following that is applicable:
Optional: Mark one or more of the following that are applicable:
What does this PR do / why do we need this PR?
With Linux kernel 5.4 (which shipped, for example, with Ubuntu 20.04 LTS) several new Ceph RBD image features was implemented. The rook-ceph defaults, however, does not reflect this fact, and the existing default ("layering") is recommended only for kernels prior to 5.4. Adding the ability to set "imageFeatures" defaults when deploying rook-ceph aims to mitigate this.
From rook-ceph's documentation: "Rook's default RBD configuration specifies only the layering feature, for broad compatibility with older kernels. If your Kubernetes nodes run a 5.4 or later kernel, additional feature flags can be enabled in the storage class. The fast-diff and object-map features are especially useful."
This change will not, however, change existing default behavior.
Additional information to reviewers
Changing parameters to an already existing storage storageclass is not allowed.
Screenshots
Checklist
NetworkPolicy Dashboard