Skip to content
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

component should be mutable in alpha2 #343

Merged
merged 1 commit into from
May 19, 2020
Merged

Conversation

hongchaodeng
Copy link
Member

No description provided.

@hongchaodeng
Copy link
Member Author

cc @wonderflow @ryanzhang-oss

@@ -33,7 +33,7 @@ In addition, as an application configuration is released, its _component instanc

To accommodate this definition of a release, an OAM platform SHOULD make the following assumptions:

- A component (as defined in the [component model](4.component.md) section) is immutable. It should not be changed after creation.
- A component (as defined in the [component model](4.component.md) section) is mutable. Upgrade can happen by updating the component, e.g. updating image.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should merge this paragraph with the paragraph below, because change on a Component will results a new release.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure. Will do it.

@negz
Copy link
Contributor

negz commented Mar 28, 2020

If we mutate a component any existing workload that uses that component will be updated. Is that really what we want? I don't have a strong opinion either way, but it would be very helpful to explain why this change is being made in the PR.

@resouer
Copy link
Member

resouer commented Mar 28, 2020

@negz What will be the Component upgrade story (let's say upgrade image) in Crossplane?

My current thought is yes, update Component should trigger rollout of the application by following strategy defined in rollout Trait (if defined).

@hongchaodeng
Copy link
Member Author

@negz

In alpha2, the Component is now mutable. This is a fact and the previous message is outdated.

Rollout is a different story from whether Component is mutable or not. It will involve versions, traffic, rollout strategy, etc. Please get involved in #342 and discuss Crossplane use cases there.

@wonderflow
Copy link
Member

In the view of OAM runtime builder, if component is mutable, then component change should trigger AppConfig Controller to reconcile the application(how to reconcile/rollout is another story). This may add complexity to OAM runtime, but I think it could work.

In this case we may need to add component version automatically in runtime, like revision in K8s object.

@resouer
Copy link
Member

resouer commented Mar 30, 2020

Since this issue is closely related to #336, and #334

We will try to bring up a complete story (upgrade, versioning and immutable) for review this week.

@ryanzhang-oss
Copy link
Contributor

Please take a look at #336 which is very much related to this.

Copy link
Member

@wonderflow wonderflow left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@resouer
Copy link
Member

resouer commented May 19, 2020

LGTM

@resouer resouer merged commit 90ba71c into oam-dev:master May 19, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants