-
Notifications
You must be signed in to change notification settings - Fork 120
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
MCM Out-Of-Tree Extensibility #178
Comments
@ggaurav10 You can copy this content into your proposal if you want ;-) |
Thanks for summarising @amshuman-kr. |
Current status:
|
FWIW "Drivers as controllers" (option 4) makes the most sense. |
Was there a decision on which option to follow here? I am currently working on a POC for the OpenStack out-of-tree implementation (similar to the one we have for AWS in the Gardener org) and was asking myself if I should move this any further. |
The decision was to implement the - MCM as GRPC client and the driver as GRPC server (CSI approach). @hardikdr has been working on this. He would be the right person to answer your query.
Which repo to you refer to by this? This one - https://github.com/gardener/machine-controller-manager-provider-aws? |
Exactly this one. |
I think this might be for the first (older) implementation. I think Hardik is working on a different approach. I would suggest you hold on from implementing further. |
Ok, got you! Thx for the update! |
Sorry for late response.
|
Thanks for the update! I basically took the gRPC client version of the AWS implementation and did the OpenStack port on my flight back from KubeCon. I will hold off with publishing it then and wait until we have a final agreement of how to proceed here. |
Solution
Acceptance Criteria
HereApproach was changed to 4 |
Hi everyone, After several rounds of discussion on the approach to be taken on OOT. We have decided to rework the existing OOT implementation to go with the controller based approach (4). The main reason for this being that the controller approach would provide more flexibility than the current gRPC approach which is in the works. We shall be making amends to the OOT implementation to accomodate this controller based implementation in the coming weeks. I shall update this issue with an PR to illustrate the changes. |
SolutionThe solution decided on is option-4 above Acceptance Criteria
Definition of Done
|
@prashanth26 You have mentioned internal references in the public. Please check. |
2 similar comments
@prashanth26 You have mentioned internal references in the public. Please check. |
@prashanth26 You have mentioned internal references in the public. Please check. |
@vlerenc Why is it closed? |
You are right @hoeltcl . This epic is still on going. It gets closed everytime we merge a PR related to this. |
/close However, there are small clean up tasks leftover like
|
Problem
There are at least four possible approaches for out-of-tree drivers as documented in this proposal.
We have implemented option 1 already as a PoC. Now we need to discuss and decide on the right approach.
Arguments
MCM as GRPC server and driver as GRPC client
SecretRef
andCloudConfig
not standardised in theMachineClass
spec.MachineClass
,Secret
andCloudConfig
if necessary.deployments
.kube-apiserver
and if necessary block it completely.MCM as GRPC client and the driver as GRPC server
deployments
.kube-apiserver
and if necessary block it completely.SecretRef
andCloudConfig
are standardised in theMachineClass
spec.MachineClass
,Secret
andCloudConfig
would be hard.SecretRef
andCloudConfig
standardised in theMachineClass
can be mitigated by making the MCM also a GRPC server (in addition to the drivers as GRPC server) to expose API to fetchMachineClass
,Secret
andCloudConfig
.Drivers as webhooks
kube-apiserver
and if necessary block it completely. But this would have some implications on the mitigations below.SecretRef
andCloudConfig
are standardised in theMachineClass
spec.MachineClass
,Secret
andCloudConfig
would be practically impossible.SecretRef
,CloudConfig
standardised in theMachineClass
would be by making the driver fetch these from thekube-apiserver
directly. But this would not only break the webhook pattern but also defeat the very purpose of having a driver framework and the fourth option might be better suited.Drivers as controllers
kube-apiserver
but not block it completely.kube-apiserver
would be required from the drivers (read access toMachines
,MachineClasses
,Secrets
andCloudConfigs
and write access to theStatus
sub-resource ofMachines
).kube-apiserver
from the drivers cannot be mitigated.The text was updated successfully, but these errors were encountered: