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

Check for Tang connectivity before proceeding with an update #687

Closed
dylangerdaly opened this issue Nov 23, 2021 · 2 comments
Closed

Check for Tang connectivity before proceeding with an update #687

dylangerdaly opened this issue Nov 23, 2021 · 2 comments

Comments

@dylangerdaly
Copy link

Feature Request

Confirm the OS is able hit the /adv endpoint of a specified Tang server before proceeding with an update.

Desired Feature

Example Usage

Other Information

Currently if my Tang server is offline, and Zincati kicks on, the server will remain in an offline state until my Tang server is back online.

@jlebon
Copy link
Member

jlebon commented Nov 24, 2021

This is probably out of scope for Zincati proper, but you should be able to build on top of #540 once that's in. If this is in a cluster context, the lock-based strategy could also make sense. (Though for a cluster, it might be safer to have multiple Tang servers instead.)

@lucab
Copy link
Contributor

lucab commented Nov 25, 2021

Indeed, if there is a need for more complex gating of the finalization/reboot step, the proper way is to point the fleet_lock strategy towards a service that is aware of all the invariants that need to be checked/guaranteed (in this case, Tang liveness).
That isn't limited to cluster scenarios, it is also valid for single nodes (and the logic can be served on localhost if the underlying infra cannot host it).

Overall, please beware that what you are trying to do is not really a sound design. The Tang server can go down after a reboot is triggered but before the node boots again, bringing you back to the same situation.
Also, the node can really reboot at any time due to any other random factor other than Zincati, and the Tang server could be down at the time too.

If you are concerned about this scenario, consider making the Tang service highly-available (HA) or severing the dependency.

@lucab lucab closed this as completed Nov 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants