-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Separate Machine APIs from Cluster APIs #490
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
Comments
I'd like to understand what the |
If we want to remove the cluster assumption from the machine actuator, there is an alternative to introducing a The actuator would need to identify and get the Cluster object from the API (Both are done by the machine controller today). To identify it, the actuator could follow a reference to the Cluster object (adding this reference to the Machine object has been discussed in #41 and #252). |
I also wonder how much this actually accomplishes, considering that the provider implementations are still very much in flux, it seems like this |
@dlipovetsky that sounds reasonable.
Machines api seems close to feature complete. Having a dedicated API group and dropping the controller coupling will likely allow us to evolve it quicker and make it consumable by tools needing beta status which will also favour adoption of the project |
@enxebre I agree, this would allow us to separate concerns. Given that the general agreement on referencing the cluster from the machine resource was to make it an optional reference, it makes sense that the actuator implementation be where the link is made if necessary. |
IMHO we should try to avoid reference to cluster-object from actuator-interface in machine-controller: ref
Although, regarding overall flow, we could expect cluster-controller to generate necessary MachineDeployment and MachineClass objects with fully-contained providerConfig in it. Further MachineDeployment controller should process MDObject and generate MSetObjects which will in turn generate MachineObjects. |
@enxebre we need to also determine how we coordinate draining nodes prior to removal of the machine. not having consistent drain will cause problems with stateful applications. |
@derekwaynecarr - I believe that the drain logic is intended to be part of the common code in the machine controller, with the goal of making it consistent. I don't recall if it's in there yet or not. |
@roberthbailey @derekwaynecarr we are currently patching the core machine Controller for draining the node on a delete event. For this to work we are also running a custom controller which links nodes with machines and ensures this is filled |
The drain logic definitely isn't in the machine controller yet. We should add it. I might be able to put together a PR for this in the next week or so, since we have drain logic floating around in a number of places already. |
@roberthbailey we've been patching the core controller to include the logic here https://github.com/openshift/cluster-api-provider-aws/pull/60/files |
Ideally we will get server side drain at some point... I'll take a look at the OS drain code; it's probably similar to what we have and is already is an easily consumable package. |
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
/remove-lifecycle stale |
/area api |
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with Send feedback to sig-testing, kubernetes/test-infra and/or fejta. |
Closing this issue given that the project's scope and objectives specifies that this is out of scope /close |
@vincepri: Closing this issue. In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
I'd like to bring up a conversation about evolving a Machine APIs at a separate cadence from the Cluster API. This ticket aims to facilitate and track a discussion around beta requirements for having a machine API distinctly from beta requirements for the Cluster API project as a whole. A beta API for machines should enable provisioning and deprovisioning machines via Kubernetes-style API, support basic health management, and clear policies for handling scale up and down of sets
Proposed changes:
The text was updated successfully, but these errors were encountered: