-
Notifications
You must be signed in to change notification settings - Fork 80
Implement ApplicationScope in Crossplane #62
Comments
@artursouza volunteered offline to tackle this issue, though I have no privilege to assign issue to him ... @negz or @hasheddan help? |
@resouer i think he needs to be added to Crossplane org. @jbw976 could you add @artursouza? |
I have sent an invitation to @artursouza to join the Crossplane org as a member. Once he accepts then issues can be assigned to him. I've never understood that GitHub limitation 🤔 |
Thanks so much @jbw976 :) |
@hasheddan Hi Daniel, seems now the issue can be assigned to Artur. Could you help with that? |
@resouer done :) |
Hi @artursouza, do we have any ongoing PR or implementations on this issue? :) |
I'm not sure if there's any existing proposal about how to implement scope? @artursouza In my mind, scope is create by stand alone CR but component joining a scope should be controlled by oam-k8s-runtime. For example, a workflow may be something like below:
|
Hi, Sorry for the delay on this. Here is what I am thinking for ApplicationScope:
|
If appconfig controller MUST understand a specific kind of scope, it will be very hard to extend without changing the core of appconfig controller. Now we have very flexible extendability of OAM v1alpha2, we'd better not break it. |
I agree with the point that appconfig controller should not know the spec of any scope types. Only the scope CR controller knows how to handle specific scope types, like NetworkScope. The workloads to the scope could be passed down as mentioned in https://github.com/crossplane/crossplane/issues/1480#issuecomment-625732816. |
I've created the work item for HealthScope. For Ingress, since it is a Trait and not Scope, I did not create a work item for this here. I suggest we continue the design discussion for Scopes in a Google Docs. I can share the link once we have a draft. |
@artursouza Just clarify, Scope will be used to model cross components traffic service like Virtual Service in Istio, it could also be Ingress/APIGateway in some context. This is a real world use case and let's put it in design doc. Essentially, Ingress is a trait or scope depends on it is used for single component or cross component. |
Also, we will need to differentiate "bring your own Scope" and "develope your Scope" in the this design just like Trait - Workload proposal. |
Yes, exactly, we'd better have a proposal about scope like Trait - Workload proposal before implementation. |
We have a document to discuss the proposal: |
@artursouza Great! Could you please open comment access btw? |
Per #55 we're centralising all things OAM into one repo, and oam-kubernetes-runtime seems like the most likely place. I'm going to move this issue there. |
@artursouza can we close this issue now? |
We did implement HealthScope. If this issue is about other Application Scopes too, then it should remain open. |
Let's close this issue as health scope already be implemented as a good example about how to implement Application Scopes. Feel free to create a new one if new scopes are needed. |
What problem are you facing?
We didn't find concrete use case for Scope concept on K8s before so we decide to skip it temporarily in Crossplane. Though we now found Scope is actually a strong need for traffic mgmt in app. For example the Istio BookInfo sample should be able to be modeled easily with Crossplane's application model.
The mapping would be:
Mirror issue: oam-dev/rudr#558 (comment)
How could Crossplane help solve your problem?
Implement Scope feature in Crossplane's application model.
/cc @omkensey @ryanzhang-oss
The text was updated successfully, but these errors were encountered: