-
Notifications
You must be signed in to change notification settings - Fork 8.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
[Fleet] Implement rolling upgrades for Agent upgrades #130259
Labels
Comments
joshdover
added
WIP
Work in progress
Team:Fleet
Team label for Observability Data Collection Fleet team
v8.3.0
labels
Apr 14, 2022
Pinging @elastic/fleet (Team:Fleet) |
This was referenced Apr 26, 2022
This was referenced May 10, 2022
6 tasks
This was referenced May 20, 2022
This was referenced May 23, 2022
4 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Changes not related to rolling upgrade
UI Remove licence restrictions for bulk selection
@criamico #130981
Currently we restrict bulk actions to user with gold plus licence, (note we only restrict this in the UI, API allow bulk actions without validating licence
UI Move the bulk actions from the table to actions button
@criamico #131133
We want to move the bulk actions from the table to an action button near the add agent button when agents are selected
UI/API Add additional version option for "Upgrade" action on agent list
We want to allow the user to specify the version he want to upgrade too, we should allow a user to upgrade to a version <= kibana version.
Also we should not allow to upgrade agents before Fleet server are upgraded
API
@criamico [Fleet] Changes to bulk upgrade api for allowing rolling upgrades #131947
Depends on https://github.com/elastic/website-development/issues/9331
GET /api/fleet/agents/available_upgrade_versions
. This API should fetch data from an internal kibana endpoint and fallback to an hardcorded|configured list of version.8.0.0-alpha1
Note: theeol
json doesn't have information about the elastic agent package, we'll likely need to find another source for this info - currently investigating how to get the info from https://www.elastic.co/downloads/past-releases#elastic-agentUI Misc
Rolling upgrade changes
This depends on the
.fleet-agent-actions
schema to be updated:UI
EuiComboBox
to search among the versions instead of the simple dropdownrollout_duration_seconds
) (bulk upgrade only) and pass that to the upgrade APIDefines the duration of time available to perform the upgrade. The agent upgrades are spread uniformly across this duration in order to avoid exhausting network resources.
Immediately
(no wait between upgrades)Immediately
(as it might impact upgrades of big batches)API
@nchaulet
start_time
) in the bulk upgrade API. And use that when creating.fleet-actions
document. Behind the scenes the upgrade API should:.fleet-actions
document withagent_ids
instead of one per agent [Fleet] Cleanup action types and use one document per action instead of one per agent #131826start_time
,expiration
andminimum_execution_period
to the.fleet-actions
(minimum_execution_period
will be hardcoded in Kibana to give enough time for last agent to get scheduled to have a chance to complete the upgrade) [Fleet] Allow to specify an upgrade window for rolling upgrade #131964.fleet-agent-actions document for an upgrade (@michel-laterman to confirm)
Add a current upgrade API
GET /api/fleet/current-upgrades
[Fleet] Add new API to get current upgrades #132276.fleet-actions
with theUPGRADE
type that are not expired to get the action id and expected number of agent to upgrade and will then query.fleet-actions-results
to know how many of these agents completed the upgrade.Add an API to abort current upgrades
POST /api/fleet/actions/{upgradeActionId}/cancel
. This will create a new.fleet-actions
of typeCANCEL
with the target action id to cancel and the agent ids that should be cancelled (we could reuse the agent ids from the action to cancel to populate that).fleet-agent-actions document for a cancellation (@michel-laterman to confirm) [Fleet] Allow to cancel agent actions #132168
Testing
The text was updated successfully, but these errors were encountered: