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

v1alpha4: write sentinel file as part of bootstrap #3716

Closed
CecileRobertMichon opened this issue Sep 30, 2020 · 10 comments · Fixed by #4084
Closed

v1alpha4: write sentinel file as part of bootstrap #3716

CecileRobertMichon opened this issue Sep 30, 2020 · 10 comments · Fixed by #4084
Assignees
Labels
kind/feature Categorizes issue or PR as related to a new feature. kind/proposal Issues or PRs related to proposals.
Milestone

Comments

@CecileRobertMichon
Copy link
Contributor

CecileRobertMichon commented Sep 30, 2020

original discussion: https://kubernetes.slack.com/archives/C8TSNPY4T/p1599744069010700
/cc @jdef

See also:
kubernetes-sigs/cluster-api-provider-azure#603
proposal: https://docs.google.com/document/d/1U0GxvO6ltgIINMjpQz96UD4bExlN2h21wyyn-3ENezc/edit
https://docs.google.com/document/d/1FVRxo9toKSUmvKIUFFzPFhnFrfdR9s7S6Bl4shovNlg/edit#heading=h.3mwmvwsf4jyi
Sept 16 2020 office hours

Proposal: change the bootstrap provider contract to include writing a sentinel file at a specific (or possibly user-configurable?) location. For example, for CABPK, this would look like adding a touch $filepath echo success > filepath (to be compatible with Windows) after the kubeadm init or join command in the script that is written as Boostrap Data.

This would not completely solve the problem of bootstrap failure detection but provides a clear signal to the infra provider that bootstrap is complete and the infrastructure provider can then take it from there and use infra specific mechanisms to read that signal.

/kind feature
/kind proposal
/milestone v0.4.0

@k8s-ci-robot k8s-ci-robot added the kind/feature Categorizes issue or PR as related to a new feature. label Sep 30, 2020
@k8s-ci-robot k8s-ci-robot added this to the v0.4.0 milestone Sep 30, 2020
@k8s-ci-robot k8s-ci-robot added the kind/proposal Issues or PRs related to proposals. label Sep 30, 2020
@jdef
Copy link
Contributor

jdef commented Sep 30, 2020

For example, for CABPK, this would look like adding a touch $filepath after the kubeadm init or join command in the script that is written as Boostrap Data.

Should this be clarified? e.g. only touch the sentinel file once the kubeadm init or kubeadm join command has completed successfully.

User-configurability isn't very important for my use case. That said, CAPBK already makes assumptions about writing to /tmp, right? It would be nice if the contract here didn't make any assumptions about filesystem existence other than what is already assumed.

@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Dec 29, 2020
@fabriziopandini
Copy link
Member

/remove-lifecycle stale

@k8s-ci-robot k8s-ci-robot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Dec 30, 2020
@CecileRobertMichon
Copy link
Contributor Author

/assign

@fabriziopandini
Copy link
Member

background question: does this a problem falls into the node agent responsibility? cc @randomvariable

@vincepri
Copy link
Member

It should probably be a contract respected in all bootstrap providers

@CecileRobertMichon
Copy link
Contributor Author

Yes, it's up to each bootstrap provider to determine what counts as "successful" bootstrapping. For example, for CABPK it would be if kubeadm init or kubeadm join exits 0. It's up to each bootstrap provider to get the file on the VM according to its own implementation.

The presence of the file itself is what should be part of the contract.

@fabriziopandini
Copy link
Member

Ok thanks!
I'm looking forward to the node agent design doc to get all the pieces together and understand if/how this will impact bootstrap providers as well

@randomvariable
Copy link
Member

I know we don't have a label for it, but just for tracking

/area node-agent

@k8s-ci-robot
Copy link
Contributor

@randomvariable: The label(s) area/node-agent cannot be applied, because the repository doesn't have them

In response to this:

I know we don't have a label for it, but just for tracking

/area node-agent

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.

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. kind/proposal Issues or PRs related to proposals.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants