Skip to content

Conversation

@enxebre
Copy link
Member

@enxebre enxebre commented Apr 29, 2019

Master machine assets were introduced by #491 to adopt instances generated by tf. There was never a follow up to leverage adoption for fatrther addon features. Unless there's a good reason to keep the adoption, this PR removes the machine API master awareness and assets generation until there's a more complete story for it

Master machine assets were introduced by openshift#491 to adopt instances generated by tf. There was never a follow up to leverage adoption for fatrther addon features. Unless there's a good reason to keep the adoption, this PR removes the machine API master awareness and assets generation
@enxebre
Copy link
Member Author

enxebre commented Apr 29, 2019

/hold

@openshift-ci-robot openshift-ci-robot added do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels Apr 29, 2019
@enxebre
Copy link
Member Author

enxebre commented Apr 29, 2019

cc @derekwaynecarr

@openshift-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: enxebre
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: steveej

If they are not already assigned, you can assign the PR to them by writing /assign @steveej in a comment when ready.

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@sdodson
Copy link
Member

sdodson commented Apr 29, 2019

/cc @abhinavdahiya @wking

@sdodson sdodson removed the request for review from jstuever April 29, 2019 12:13
@dhellmann
Copy link
Contributor

Please don't do this. We're going to need the master machines in order to manage those hosts for RHHI.Next.

@smarterclayton
Copy link
Contributor

/hold

@smarterclayton
Copy link
Contributor

Yeah, even on AWS there are expectations we can reduce manual effort for admins in some scenarios via this.

@vikaschoudhary16
Copy link
Contributor

openshift/origin#22698

@abhinavdahiya
Copy link
Contributor

abhinavdahiya commented Apr 29, 2019

This is a no-go.

Can you explain what
addon features we are not using?
Where does the adoption create problems for machine-api-? What special things do you have to do ie master awareness?

@openshift-ci-robot
Copy link
Contributor

@enxebre: The following tests failed, say /retest to rerun them all:

Test name Commit Details Rerun command
ci/prow/e2e-openstack c9316d8 link /test e2e-openstack
ci/prow/e2e-aws c9316d8 link /test e2e-aws
ci/prow/e2e-aws-upgrade c9316d8 link /test e2e-aws-upgrade

Full PR test history. Your PR dashboard. Please help us cut down on flakes by linking to an open issue when you hit one in your PR.

Details

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 understand the commands that are listed here.

@enxebre
Copy link
Member Author

enxebre commented Apr 30, 2019

Please don't do this. We're going to need the master machines in order to manage those hosts for RHHI.Next.

@dhellmann
The masters machines today are just adopted by the API. The only benefit you get from this today, is you can delete them via cli. They are not a set, you can not scale them in/out. Could you elaborate your user case?

Yeah, even on AWS there are expectations we can reduce manual effort for admins in some scenarios via this.

@smarterclayton
Afaik all this adoption gives you atm is an easy way to delete masters via cli/api. I'd argue that's a +1.
Can you elaborate in which scenarios can be beneficial?

Can you explain what
addon features we are not using?
Where does the adoption create problems for machine-api-? What special things do you have to do ie master awareness?

@abhinavdahiya
All this adoption gives us today is exposing en easier way to delete master machines. Adopting with API machines could be the foundation for higher level addon features to have a robust API driven control plane which could allow things like scaling capabilities for the control plane via sets, autoscaling, stronger integration with etcd, recovering from distaster scenarios. But afaik none of this is in place today.

So may be I'm just missing context on the uses cases pointed here but until those features are in place is not clear to me the benefit from adopting masters atm.

@smarterclayton
Copy link
Contributor

smarterclayton commented Apr 30, 2019 via email

return true, err
}

m.MachineFiles = fileList
Copy link
Contributor

Choose a reason for hiding this comment

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

This will break loading the asset from disk. The MachineFiles will be empty when the asset is loaded from disk.

@abhinavdahiya
Copy link
Contributor

abhinavdahiya commented Apr 30, 2019

@abhinavdahiya
All this adoption gives us today is exposing en easier way to delete master machines. Adopting with API machines could be the foundation for higher level addon features to have a robust API driven control plane which could allow things like scaling capabilities for the control plane via sets, autoscaling, stronger integration with etcd, recovering from distaster scenarios. But afaik none of this is in place today.

It gives cluster-machine-approver a consistent way to approve server certs for kubelets on IPI
It gives teams working on DR scenarios to get their control plane hosts recreated
It gives teams working on DR auto load-balancer re-wiring

control plane -> machines
compute -> machinesets is a great way to give users info that control plane today is pet, when compute is cattle in Openshift 4.

So may be I'm just missing context on the uses cases pointed here but until those features are in place is not clear to me the benefit from adopting masters atm.

So I do not agree with your resononing that control plane machines objects only serve "delete from CLI", it is an important API layer we build on IPI

@dhellmann
Copy link
Contributor

Please don't do this. We're going to need the master machines in order to manage those hosts for RHHI.Next.

@dhellmann
The masters machines today are just adopted by the API. The only benefit you get from this today, is you can delete them via cli. They are not a set, you can not scale them in/out. Could you elaborate your user case?

The RHHI.Next case is a baremetal hyperconverged cluster with the provisioning tool for expanding the cluster self-hosted within the cluster. The source of truth about the nodes, machines, and hosts in the cluster is custom resources in the kubernetes database, and the cluster-api provider we're building accesses that data using the kubernetes API.

Because this is a self-hosted baremetal setup, there is no external component to do hardware monitoring, so we are also building that so we can report to the user about what hardware they have and whether it is healthy. In order to monitor every member of the cluster, including the masters, we need the installer to register them based on information collected from the user at the time the cluster is built. There is no other API or database for us to query later to "adopt" them.

This sprint we are focusing on finishing the work to migrate the logic from our proof-of-concept scripts for doing all of this into the installer, so we will have more patches soon to show exactly how we will use the Machine objects being registered here as masters, as well as any that will be registered as workers.

@enxebre
Copy link
Member Author

enxebre commented May 2, 2019

@dhellmann @abhinavdahiya thanks for elaborating. As far as we are clear and explicit on the message that masters machines are pets today with the risks which that carries I'm ok.

@enxebre enxebre closed this May 2, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants