Open
Description
Because CRDs cannot handle recursive types natively, we do not currently support recursive codegen from the CLI ("do not currently support" in this case means "CLI freezes up when CUE attempts to convert the recursive CUE type to OpenAPI). However, there are definitely use-cases for recursive types within app platform, so we should evaluate if we want to support recursive types in any possible case. Some questions:
- If we support recursive types in any way, how does this impact the app manifest, which inlines the schemas?
- Do we want to extend apiextensions to handle recursive types?
- Do we want to only generate code for the recursive types, and use
kubernetes-preserve-unknown-fields: true
on an empty object when generating the schema (as suggested in this kubernetes issue? We could use webhook validation to check that the actual data is correct on create/update. - How does this impact other tooling and/or service discovery?