-
Notifications
You must be signed in to change notification settings - Fork 251
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ComponemtDefinion.Spec should have a list of workload/schematics objects #478
Comments
Good question, For example, we need a helm component type, we can implement it by using FluxCD or ArgoCD, so we can define the ComponentDefinition like:
The full example of this definition can be found here, it's defined in CUE but can be converted to OAM api when applied into k8s. Or we can define it by using fluxcd like:
The full example of this definition can be found here. As to say the workload, I think it could be omitted in this case. |
All clear, thank you. So it's "aliasing" (contracts) for each Workload that the scheduler platform team would provide locally. I had thought It looks like the actual parameter contract might be abstracted away and made global, though. By the way, I have the impression a lot of this is working around the yaml hell, very fundamentally. Maybe the project would be able to benefit from Nickel (think cue with much better error reporting strategy) as your data wrangler. https://github.com/tweag/nickel It's functional. ❤️ |
Yes, we're also feeling this can be a standard registry for all common types and parameters. The implementation can be automatically registered and discovered. Something like:
Thanks @blaggacao for introducing nickel, we'll look into it. |
I think we can keep this issue open to support component/trait standard registry and track the idea. \cc @Somefive @wangyikewxgm |
Unless I misunderstand something, the 1:1 mapping of
Spec
to exactly oneworkload
and oneschematics
looks like countering the desigen principles.Isn't the idea precisely to make an Application agnostic of the scheduler platform so that it can be ported across different platforms?
Or is the impetus to reimplement the exact same fully qualified
CompomemtDefinition
on a different platform (by the platform team) with a differentworkload
/schemantics
pair (but the same parameter contract)? This is wired because it essentially signifies aliasing (only aparent and context sensitive) "fully qualified" names.The text was updated successfully, but these errors were encountered: