-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
MachinePool does not automatically rollout changes to the bootstrap.configRef #6563
Comments
cc @CecileRobertMichon @mboersma |
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
/triage accepted /help |
@fabriziopandini: GuidelinesPlease ensure that the issue body includes answers to the following questions:
For more details on the requirements of such an issue, please see here and ensure that they are met. If this request no longer meets these requirements, the label can be removed 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. |
@richardcase @fabriziopandini @CecileRobertMichon Just fyi, I think this is a problem / limitation when we try to rollout changes to the BootstrapConfig of a MachinePool via ClusterClass. Not sure what the expected UX for MachinePools is. Is the expectation that users (/ClusterClass) unset the dataSecretName when they change the bootstrap ref? I think with ClusterClass we have two options:
Opinions? |
AFAIK this isn't supported yet? I thought @richardcase was working on it? But agreed, we should probably fix this. |
It's not supported yet. I just think it's probably better to fix this before we implement unsetting the dataSecretName in ClusterClass to make it work (assuming rollout after ref change is the expected UX). Mostly wanted to know what the expected UX is. |
@sbueringer I'm happy to take a look at this. So at a high level, do we just want to compare the data secret name referenced in |
Also could you point me to where the bootstrap.configRef change roll out happens for MachineDeployments? I'm thinking we can probably mirror what it's doing there. |
Thx!
Roughly, yes. Today the MachinePool controller is only writing cluster-api/exp/internal/controllers/machinepool_controller_phases.go Lines 203 to 207 in f8fd8cc
As soon as the field is not nil reconcileBootstrap is done. I think it should always run the entire func.
I think MachineDeployment is too different. MachineDeployment has BootstrapConfigTemplates instead of a BootstrapConfig and it is creating a new MachineSet as soon as a BootstrapConfig ref points to another template. |
Just my opinion, would be good to get confirmation from someone who is more familiar with MachinePools (cc @CecileRobertMichon @mboersma) |
Had to refresh my memory on this one. I think we only want to reconcile if the More context in this slack thread: https://kubernetes.slack.com/archives/C8TSNPY4T/p1653424336790119 |
@CecileRobertMichon @sbueringer So just to clarify we want to run these lines cluster-api/exp/internal/controllers/machinepool_controller_phases.go Lines 209 to 241 in f8fd8cc
in the event that |
I think in the case that |
What steps did you take and what happened:
[A clear and concise description on how to REPRODUCE the bug.]
I changed the bootstrap.configRef in a MachinePool and the MachinePool didn't rollout the change.
What did you expect to happen:
I expected the MachinePool to rollout the changes just like the MachineDeployment does.
Anything else you would like to add:
[Miscellaneous information that will assist in solving the issue.]
Some more details:
Initial MachinePool
I updated
.spec.template.spec.bootstrap.configRef
tok8s-upgrade-and-conformance-uiq8gp-mp-0-config
and the change was not rolled out.The cause of this is that the dataSecretName is only set by the MachinePool controller if it is empty. If I remove the dataSecretName from the MachinePool the MachinePool controller picks up the data secret of the new BootstrapConfig and the change is rolled out.
In my opinion we should update the dataSecretName when the bootstrap configref is changed. Maybe even if the ref stays the same and only the dataSecretName in the status of the referenced resource is updated, this would probably be easier to implement as we just have to always propagate the dataSecretName of the referenced BootstrapConfig.
Notes:
Environment:
/kind bug
[One or more /area label. See https://github.com/kubernetes-sigs/cluster-api/labels?q=area for the list of labels]
The text was updated successfully, but these errors were encountered: