elastic / elastic/fleet-server

[OpAMP] Support `AcceptsPackages`

Open
#6,819 0 comments 0 reactions 0 assignees View on GitHub
enhancement Team:Elastic-Agent-Control-Plane
Dominant language
Go
Stars
113
Forks
117
Avg merge
1d 16h
Merged PRs (30d)
112

Description

**Describe the enhancement:**

Add support to Fleet Server for offering package/executable updates to OpAMP clients. This is the most complex capability — it requires integration with an upstream upgrade process, package signing/verification, and a delivery mechanism for binaries. Lowest priority / optional for this outcome.

**Capability advertisement vs. offering:**

Per the OpAMP spec, Fleet Server MUST advertise `OffersPackages` in the [`capabilities` field](https://opentelemetry.io/docs/specs/opamp/#servertoagentcapabilities) of the first `ServerToAgent` message unconditionally. However, Fleet Server MUST NOT actually send a `PackagesAvailable` payload unless the client has advertised [`AcceptsPackages`](https://opentelemetry.io/docs/specs/opamp/#agenttoservercapabilities) in its most recent `AgentToServer` message. Advertisement is unconditional; offering is gated on client capability. See the [Packages section](https://opentelemetry.io/docs/specs/opamp/#packages) of the spec.

**Testing:**

:warning: This feature **cannot currently be tested end-to-end with the upstream OTel Collector supervisor**. The supervisor has no config key for `accepts_packages` and does not advertise the capability bit. Testing will require upstream supervisor support (tracked at [opentelemetry-collector-contrib#47272](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47272)). See the [OpAMP Supervisor README](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/cmd/opampsupervisor) and the [OTel Collector contrib releases](https://github.com/open-telemetry/opentelemetry-collector-releases/releases) page.

**Describe a specific use case for the enhancement or feature:**

Fleet centrally offers package/executable updates to managed OpAMP agents, enabling operators to upgrade agent binaries across a fleet from Fleet rather than managing host-level package installs.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.