Feat(reports): CUE reports with dashboards, and feature gates read from the controller (19/21)
Merged
BR
15d ago+5168+5168+0123456789012345678901234567890123456789-48-48-01234567890123456789
Stack 19/21 · after #970 · next #972 · uses KubeVela kubevela/kubevela#7422 at runtime, kubevela/kubevela#7423 to build
Targets main but builds on #970, so the earlier stack commits show here too: review the last commit only. Merge after #970.
Description of your changes
- Reports are CUE, local to a project or global, run over one project with charts and headline tiles. VelaUX installs a set of built-in ones (environment drift, running images, restarting pods, quota usage, recent changes and more).
- Feature gates: KubeVela code running inside VelaUX follows the gates the controller publishes, so a compare or dry-run here matches the controller.
// +title=Running images
// +chart=pie
// +chart:x=tag
import "vela/report"
template: {
pods: report.#List & {$params: {apiVersion: "v1", kind: "Pod"}}
// ...
rows: [...{
// +title=Repository
repository: string
// +title=Tag
tag: string
}]
}

Fixes #
I have:
- Read and followed KubeVela's contribution process.
- Related Docs updated properly. In a new feature or configuration option, an update to the documentation is necessary.
- Run
yarn lintto ensure the frontend changes are ready for review. - Run
make reviewableto ensure the server changes are ready for review. - Added
backport release-x.ylabels to auto-backport this PR if necessary.
Special notes for your reviewer
- Reports read through VelaUX's own APIs as the signed-in user, so they see only what the user can.