Feat(definitions): restrictions, immutable parameters, abstract definitions and generated forms (7/21)

Merged
BR
16d ago
+4279-235

Stack 7/21 · after #958 · next #960 · needs KubeVela kubevela/kubevela#7423 to build

Targets main but builds on #958, so the earlier stack commits show here too: review the last commit only. Merge after #958.

Description of your changes

Forms follow what the controller enforces and generates.

  • Namespace restrictions and quota on a definition, with each namespace's usage. Type pickers hide what the application's namespaces can't use, and a refused deploy says why (warnings included).
  • Immutable parameters are locked once their value is deployed.
  • Abstract definitions stay out of the type pickers.
  • Generated forms: the controller's default UI schema is preferred (addons and config templates too), its +ui hints are rendered, and fields take $( ) expressions with suggestions.

07-restrictions

07-form

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 lint to ensure the frontend changes are ready for review.
  • Run make reviewableto ensure the server changes are ready for review.
  • Added backport release-x.y labels to auto-backport this PR if necessary.

Special notes for your reviewer

  • The second commit bumps github.com/oam-dev/kubevela to the commit that merged kubevela/kubevela#7423, which the generated forms read definitions with.