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

📖 Etcd on data disk CAEP #3048

Merged

Conversation

CecileRobertMichon
Copy link
Contributor

@CecileRobertMichon CecileRobertMichon commented May 11, 2020

What this PR does / why we need it:
This PR brings the CAEP for implementing disk setup and mounts in CABPK.

Comments on the Google doc are addressed.

Moving here for getting feedback from a broader audience.

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Relates to #2994

@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels May 11, 2020
@CecileRobertMichon CecileRobertMichon changed the title 📖 Etcd on data disk CAEP 📖 Etcd on data disk CAEP May 11, 2020
@k8s-ci-robot k8s-ci-robot requested review from benmoss and justinsb May 11, 2020 20:14
@CecileRobertMichon
Copy link
Contributor Author

/hold for rebase and community consensus

/assign @detiber
/assign @vincepri
/assign @fabriziopandini
/assign @bagnaram

@k8s-ci-robot k8s-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label May 11, 2020
@k8s-ci-robot
Copy link
Contributor

@CecileRobertMichon: GitHub didn't allow me to assign the following users: bagnaram.

Note that only kubernetes-sigs members, repo collaborators and people who have commented on this issue/PR can be assigned. Additionally, issues/PRs can only have 10 assignees at the same time.
For more information please see the contributor guide

In response to this:

/hold for rebase and community consensus

/assign @detiber
/assign @vincepri
/assign @fabriziopandini
/assign @bagnaram

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.

@bagnaram
Copy link

/assign

@CecileRobertMichon
Copy link
Contributor Author

/kind proposal

@k8s-ci-robot k8s-ci-robot added the kind/proposal Issues or PRs related to proposals. label May 11, 2020
@vincepri
Copy link
Member

1 week timeout starting today?

Copy link
Contributor

@michaelgugino michaelgugino left a comment

Choose a reason for hiding this comment

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

I don't prefer this proposal. As mentioned on the gdoc, I think continuing building an abstraction on an abstraction is the wrong direction. Cloud init already supports doing this, we should enable users to BYO cloud init vs consuming an ever-incomplete template system.

This goes back to the issue of the problem being a higher-level problem. One can't have an additional disk in the bootstrap config without having the corresponding machine infrastructure in place. So, there still needs to be yet-another layer on top to coordinate these pieces. Is there going to be some higher-level tuneable such as 'give-etcd-separate-disks' that is going to stamp out all the options for all the pieces down below? Doesn't seem feasible. At some point, we have to give users the power to make their own decisions.

@vincepri
Copy link
Member

vincepri commented May 12, 2020

@michaelgugino You put in words something that myself (and probably others) have been feeling for a while. The bootstrap abstraction needs a complete rework, although without time and people-hours dedicated to it we won't be able to deliver such a rework (which will probably also require one or more API revisions to fully become concrete).

Yesterday, @CecileRobertMichon and I were talking about this proposal, and how the bootstrap provider is becoming more and more infrastructure aware and crossing boundaries.

While there are better, longer term solutions, I'm fully behind having these changes go in v1alpha3 because it's an iterative improvement (better than what we have today), and it opens new cases and features. In addition, we have the team at Microsoft behind this proposal, which is also going to help with implementation, support, and testing.

@CecileRobertMichon
Copy link
Contributor Author

CecileRobertMichon commented May 12, 2020

This goes back to the issue of the problem being a higher-level problem. One can't have an additional disk in the bootstrap config without having the corresponding machine infrastructure in place. So, there still needs to be yet-another layer on top to coordinate these pieces. Is there going to be some higher-level tuneable such as 'give-etcd-separate-disks' that is going to stamp out all the options for all the pieces down below? Doesn't seem feasible. At some point, we have to give users the power to make their own decisions.

@michaelgugino that is indeed a problem I've been thinking about a lot with this proposal, and I also put it in the proposal as the last "risk and mitigation". Right now, the solution I'm proposing is actually give the users the choice ( I personally see it as "putting the burden on the user" though) by exposing a generic disk setup and making the changes required to put etcd on an external disk part of the user template (ie. completely user configurable). There will not be "a higher-level tuneable such as 'give-etcd-separate-disks'". See my capz prototype for an example of this works in practice.

I agree that "KubeadmConfigSpec" is taking on too much infrastructure configuration right now but as Vince said, reworking CABPK needs to be its own proposal and would likely involve breaking changes. I'm trying to unblock CAPZ and CAPA users by providing a generic, reusable implementation that brings incremental value and can be done in v1alpha3.

@fabriziopandini
Copy link
Member

+1 for me because this enables new use cases right now in v0.3.x.
I also agree that long term, we should find a way for moving infrastructure specific bits away from KubeadmConfig

@michaelgugino
Copy link
Contributor

I don't have strong objection to this particular feature if we've identified that long term this provider is probably not the ideal implementation.

Perhaps, then, this CAEP should be more generic. Something like "Continue adding cloud-init functionality to CAPBK" so people can add features as they need them instead of having to file a new CAEP every time we want to extend the missing pieces. Perhaps some framework for expected implementation conformance.

@CecileRobertMichon
Copy link
Contributor Author

@michaelgugino let's continue the conversation about making cloud init more accessible to the user and infrastructure bootstrap less tied to kubeadm bootstrapper in #3064

Copy link
Member

@vincepri vincepri left a comment

Choose a reason for hiding this comment

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

/approve

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: CecileRobertMichon, vincepri

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

The pull request process is described here

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

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label May 19, 2020
@detiber
Copy link
Member

detiber commented May 19, 2020

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label May 19, 2020
@vincepri
Copy link
Member

/retest

@vincepri
Copy link
Member

/milestone v0.3.x

@k8s-ci-robot k8s-ci-robot added this to the v0.3.x milestone May 19, 2020
@vincepri
Copy link
Member

@CecileRobertMichon might want to try to rebase?

@CecileRobertMichon
Copy link
Contributor Author

@vincepri I just did earlier, I'm pretty sure the failures are due to https://status.quay.io/

@vincepri
Copy link
Member

uh oh! You're right, apologies

@CecileRobertMichon
Copy link
Contributor Author

/retest

@vincepri
Copy link
Member

/hold cancel

@k8s-ci-robot k8s-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label May 20, 2020
@k8s-ci-robot k8s-ci-robot merged commit da8e88b into kubernetes-sigs:master May 20, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/proposal Issues or PRs related to proposals. lgtm "Looks good to me", indicates that a PR is ready to be merged. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants