elastic / elastic/fleet-server

[OpAMP] Support `AcceptsRemoteConfig`

Open
#6,814 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 remote configuration to OpAMP clients (e.g., the OpAMP supervisor managing a collector). This corresponds to the OpAMP server `OffersRemoteConfig` capability, enabling clients that advertise `AcceptsRemoteConfig` to receive configuration updates from Fleet Server.

Scope includes generating and delivering `AgentRemoteConfig` messages in the `ServerToAgent` flow and surfacing remote config status (`APPLYING`/`APPLIED`/`FAILED`) in Fleet.

**Capability advertisement vs. offering:**

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

**Testing:**

This feature should be tested against an upstream OTel Collector (contrib distribution) managed by the OpAMP Supervisor. The supervisor does NOT advertise `AcceptsRemoteConfig` by default — the supervisor config must set `capabilities.accepts_remote_config: true`. See the [OpAMP Supervisor README](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/cmd/opampsupervisor) for instructions on running the supervisor, and the [OTel Collector contrib releases](https://github.com/open-telemetry/opentelemetry-collector-releases/releases) page for the collector binary.

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

Fleet users need to centrally push configuration updates to managed OpAMP agents (such as an OTel Collector managed by the OpAMP supervisor) from Fleet, without manually editing config files on each agent host.

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.