-
Notifications
You must be signed in to change notification settings - Fork 247
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
Workload settings in 0.2.2 WD #437
Comments
I've come to the conclusion that there may be terminology issues here leading to confusion. My current understanding is that If my new interpretation is correct this does eliminate the ability to query the platform for a list of supported component types. For example a component provider must assume that any existing CRD could be used within a WorkloadDefinition. Is this a correct assumption? The "new" WorkloadDefinitions I see (i.e. task, webservice, worker) more or less make sense in this adjusted model. These describe reusable parameterized templates that can be instantiated via references in Applications. I note that they do not contain metadata that I thought was was intended to be used by trait implementations (e.g. childResourceKinds). How can a trait ever be implemented to generically handle unknown future workload definitions? This leads me to consider the current containerizedworkloads.core.oam.dev workload definition. How can the existing ConainerizedWorkload be meaningfully used in an Application as they do not contain a parameterized resource template? |
@kminder Yes, it's the intention to make v0.2.2
However, the new design indeed keeps the idea of apiVersion: core.oam.dev/v1alpha2
kind: WorkloadDefinition
metadata:
name: webservice
annotations:
definition.oam.dev/description: "Long-running scalable web service with network endpoint"
spec:
definitionRef: # <--- this is the workfload type identifier
apiVersion: core.oam.dev/v1alpha2
kind: ContainerizedWorkloads
# name: containerizedworkloads.core.oam.dev # you can also use name instead of GVK (not recommend)
template:
...
parameters:
... Traits impl use
The argument is why we don't introduce a The direction I currently hoping to go is ensure user can rely on a single definition object to carry all needed information to define a reusable component. I am open to rename it to |
xref: revisioning template modules in definition (kubevela/kubevela#1064) |
Workload settings moving to the application configuration first makes the workload parameters irrelevant. Parameters were designed to allow component developers to make settings mutable or require user input, but not to define an entire unique instance. Unique instances need to follow schemas approved by the platform and be defined by a component developer.
My issues are that I only want component users and app deployment staff to have to enter limited information if any for a component. I make these mutable or required as parameters when defining my unique component instance. Also by not creating default schemas that a platform hosts and a component developer leverages, the platform opens itself up to invalid components being defined that it cannot support and it has to validate schemas one setting at a time without a truly valid standard dictionary to use for platform supported settings.
Therefore the request is that WorkloadDefinitions remain part of core, standard and extended portions of the spec and these definitions are used to define the capabilities of a Platform.
Component developers find a Platform instance that has a WorkloadDefinition schema with settings that can be used for their component and defines the component using the available Platform schema. When a developer wants a user to be able to change a setting (makes it mutable) or requires a user to provide input for their component instance, such as hostname, they make this and only this a parameter.
The text was updated successfully, but these errors were encountered: