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

Exporting ControlPlaneInitMutex #10603

Closed
nasusoba opened this issue May 14, 2024 · 4 comments
Closed

Exporting ControlPlaneInitMutex #10603

nasusoba opened this issue May 14, 2024 · 4 comments
Labels
kind/feature Categorizes issue or PR as related to a new feature. needs-priority Indicates an issue lacks a `priority/foo` label and requires one. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one.

Comments

@nasusoba
Copy link
Contributor

What would you like to be added (User Story)?

As a developer for other bootstrap provider, I would like to have ControlPlaneInitMutex (ref) exported, so that I do not have to duplicate the code in elsewhere.

Detailed Description

ControlPlaneInitMutex (control_plane_init_mutex.go) is providing functionality for the first and only control plane node to run init. It is not specific to kubeadm provider. For other bootstrap providers like capi k3s/ capi rke2 /etcdadm-bootstrap-provider, we also need it. But we need to copy this file, because control_plane_init_mutex.go is put inside an internal folder.

Anything else you would like to add?

Could I move this file to cluster-api/util, e.g., cluster-api/util/locking, so that it could be reused by other bootstrap providers?

Label(s) to be applied

/kind feature
One or more /area label. See https://github.com/kubernetes-sigs/cluster-api/labels?q=area for the list of labels.

@k8s-ci-robot k8s-ci-robot added kind/feature Categorizes issue or PR as related to a new feature. needs-priority Indicates an issue lacks a `priority/foo` label and requires one. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. labels May 14, 2024
@k8s-ci-robot
Copy link
Contributor

This issue is currently awaiting triage.

If CAPI contributors determine this is a relevant issue, they will accept it by applying the triage/accepted label and provide further guidance.

The triage/accepted label can be added by org members by writing /triage accepted in a comment.

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-sigs/prow repository.

@neolit123
Copy link
Member

neolit123 commented May 16, 2024

etcdadm-bootstrap-provider

there is a CAPI provider for etcdadm??

note that we have a plan to archive etcdadm.
https://github.com/kubernetes-sigs/etcdadm
kubernetes-sigs/etcdadm#395

ControlPlaneInitMutex (control_plane_init_mutex.go) is providing functionality for the first and only control plane node to run init

i agree that the concept of "init"/"join" is not unique to kubeadm.

@fabriziopandini
Copy link
Member

fabriziopandini commented May 22, 2024

The Cluster API project currently lacks enough active contributors to adequately respond to all issues and PRs.

As you https://cluster-api.sigs.k8s.io/user/manifesto#the-complexity-budget there is only a certain amount of complexity we can take at any time, and when the complexity budget runs out, bad things happen, quality decreases, we can’t fix bugs timely etc.

This applies also to request to transform CAPI in a generic library for other to use, and this is the reason why back in the 1.0 timeframe we moved most of our controller to private.

We also want to preserve the freedom to change implementation details of our controllers at any time without worrying about other consumers, and this mutex is de facto an implementation detaill.

This is why I think we should say no to this request.
Feel free to bring this up at the office hours if you want to discuss this

/close

@k8s-ci-robot
Copy link
Contributor

@fabriziopandini: Closing this issue.

In response to this:

The Cluster API project currently lacks enough active contributors to adequately respond to all issues and PRs.

As you https://cluster-api.sigs.k8s.io/user/manifesto#the-complexity-budget there is only a certain amount of complexity we can take at any time, and when the complexity budget runs out, bad things happen, quality decreases, we can’t fix bugs timely etc.

This applies also to request to transform CAPI in a generic library for other to use, and this is the reason why back in the 1.0 timeframe we moved most of our controller to private.

We also want to preserve the freedom to change implementation details of our controllers at any time without worrying about other consumers, and this mutex is de facto an implementation detaill.

This is why I think we should say no to this request.

/close

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-sigs/prow repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature. needs-priority Indicates an issue lacks a `priority/foo` label and requires one. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one.
Projects
None yet
Development

No branches or pull requests

4 participants