-
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
OAM Spec v0.3.0 Working Draft [Public Review and Comment] #443
Comments
I vote for |
I vote for "schematic" |
Vote for |
Fine, let's use |
Below are points that I think are important to address with the current proposal.
|
More detailed questions and comments.
|
WRT
What I really mean is that a ComponentDefinition needs to be namespace qualified. Just adding a namespace appears awkward though as it isn't clear if it applies to the
Honestly I've always felt Kubernetes needed standardized single value qualified reference formats (e.g. namespace/name and group/version.kind@namespace/name or similar).
|
Hi all, these are our comments on the spec proposal. Component Definition
Workload definition
Application
Trait definition
Application Scope
Other aspectsVersioning
Extra information on user facing entities
Component Security Context We have submitted a PR for the OAM runtime controller to include security context information on components limiting the information to aspects of the container, not to the underlying orchestration system. We think that this information should also be part of the new OAM proposal at least for the OAM Compliance With the growth of OAM in the industry we think that the spec should have a clear definition of which are the minimum requirements for an OAM runtime. Before this proposal, our understanding was that the differentiation from one provider to another would be the different workload types and traits that were present, not parts of the spec. Trait consolidation Traits are currently implemented as Kubernetes operators that modify the generated resource according to their internal logic. However, this opens up the door for consolidation failure scenarios where two traits may want to modify the same characteristic. For example, image two trait trying to set different number of replicas. Maybe it is too much of a change for the current proposal/scope, but it will be nice to consider this issue in the future. If traits are applied in order by some mechanism, we feel the system becomes much more robust, even if that requires traits not being operators, but implementing a common gRPC interface to return the altered entity. Configuration and secrets This issue is not referenced by the spec, and may not be clear for a new user how this is expected to be supported. One option is to add this type of information as a new entity or include it on the |
@kminder @dhiguero Just updated the spec description based on your inputs, they are valuable! We will leave some features as Non-Goal for this release, for example:
|
Speaking of consistency, what about using apiVersion: core.oam.dev/v1alpha2
kind: Application
metadata:
name: application-sample
spec:
components:
- name: myweb
kind: foo/webservice # ref to ComponentDefinition, optionally, in namespace foo
properties: # parameter values of the component
image: "busybox"
cmd:
- sleep
- "1000"
traits: # assume traits are in oam system namespace for now
- kind: scaler
properties:
replicas: 10
- kind: sidecar
properties:
name: "sidecar-test"
image: "nginx" |
@kminder @dhiguero please check the proposal above and +1/-1 for this. |
In spirit I agree with the suggestion above about making the syntax for references to type definitions consistent. However I'm not a fan of using
|
I also think that |
Cool, then we confirm using So the final example could be: apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: application-sample
spec:
components:
- name: myweb
type: foo/webservice # ref to ComponentDefinition, optionally, in namespace foo
properties: # parameter values of the component
image: "busybox"
cmd:
- sleep
- "1000"
traits: # assume traits are in oam system namespace for now
- type: scaler
properties:
replicas: 10
- type: sidecar
properties:
name: "sidecar-test"
image: "nginx" |
The comment after namespace is slightly misleading because it gives the impression that foo/webservice is an instance rather than a type.
Maybe change "install" to "declare". |
OAM Spec v0.3.0 Working Draft
Hi all, this is the issue tracker to finalize the design of OAM spec v0.3.0. It reflects the high level ideas of the existing working draft in master branch with considerations on backward compatibility in existing releases.
1. ComponentDefinition
2. WorkloadDefinition
3. Application
4. TraitDefinition
5. ApplicationScope
No change with spec v0.2.1
Open Questions
1. Behavior of traits for revisioned components.
Traits are attached to component instances, and those instances are revisioned. Should we replica the traits then (e.g. ingress vs. {ingress-v1, ingress-v2})?
In previous code, as a workaround, we tagged
TraitDefinition
asrevisionEnabled
to control this behavior, though recently we fallback to assume ALL traits are replicated but have to leaverollout
to a seperate field (since it is across-revisions).The text was updated successfully, but these errors were encountered: