I am ok with "components" instead of "serverComponents". I am also ok with "operands" as proposed yesterday.
The separation (server components vs workspace components) comes from the docs. If the term "server" is a source of confusion we need to revisit the doc as well.
At the end the checluster structure will look like this:
> workspaces
> defaultPlugins
> defaultNamespace
> storage
> nodeSelector
> tolerations
> trustedCerts
> gitTrustedCertsConfigMapName
> components
> devWorkspace
> dashboard
> cheServer
> clusterRoles
> deployment
> loglevel
> debug
> proxy
> database
> pluginRegistry
> devfileRegistry
> imagePuller
> extraProperties
> metrics
> ingress
> labels
> annotations
> domain
> hostname
> tlsSecretName
> auth
> containerRegistry
I still have some minor comments:
1) I would make the defaultNamespace a dedicated struct rather than a string. Now we are letting the admin specify the name template but in the future there will be more: labels, annotations, roles, quotas etc...
2) dashboard.warning is probably better as dashboard.headerMessage (struct with show (bool) and text (string))
3) extraProperties and metrics should belong to cheServer