-
Notifications
You must be signed in to change notification settings - Fork 1.9k
[teleport-update] Add support for tbot Managed Updates #60478
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
base: master
Are you sure you want to change the base?
Conversation
0213852 to
0c78ed2
Compare
9e536cf to
a927c43
Compare
|
@strideynet let me know if I should adjust reviewers |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good from the MWI side - I haven't looked too deeply into the nuts and bolts of the autoupdate agent itself.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great job!
remove teleport-update changes Revert "remove teleport-update changes" This reverts commit ee1bf09.
16293f0 to
bcfac25
Compare
This PR builds on #55499 and #60477 to add support for tbot Managed Updates to
teleport-update, following the same pattern as forteleport. This means thatteleport-updatewill:Notably, the new functionality does not interfere with any existing tbot services or deployments.
Similar to
teleport/teleport.yaml, configuration defaults such as the proxy address may be pulled fromtbot.yamlso that tbot-only installations can be converted to Managed Updates with minimal setup.Avoiding interference with existing services:
If no
tbot.serviceis present on the system already,teleport-updatewill create one that is unstarted and disabled. Users are prompted to configure tbot and then enable and start the service if tbot functionality is desired.If
tbot.serviceexists,teleport-updatewill only update or otherwise manage it if it contains the# teleport-update (version)header.The
--overwriteflag may be used to overwrite any existing binaries or services, includingtbot.service.Install suffix:
As with
teleport, multiple independently updated installations (containingteleport,tbot, and other binaries) may be created by passing--install-suffix.Systemd configuration overrides:
Systemd service fields such as
UserandGroupcan be set persistently using systemd drop-ins, which are created automatically by thesystemctl editcommand.Bot tracking:
Unlike Teleport agents, bots do not have persistent connections and cannot be tracked during upgrades. The design in this PR works around this implementation in several ways:
Note that a failed /readyz check will revert the bot back to the previously installed version in all cases.
Note that tbot does not support soft reloads, so Managed Updates will cause tbot to restart while dropping connections. This is mitigated by Managed Updates scheduling, which allows users to control exactly when tbot installations are updated (separately from agents, if desired).
(apologies for typo in branch name -- github does not allow changing source branch names)
changelog: add support for tbot to teleport-update
RFD: #47126
Goal (internal): https://github.com/gravitational/cloud/issues/14225