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] Support multiple Fleet Servers in Fleet UI #137785
Comments
Pinging @elastic/fleet (Team:Fleet) |
For enrollment you need the host and not the name as the agent will have to communicate with that Fleet server no? |
I think this coupling will be changed as of this issue. A Fleet Server host object (maybe needs a better name e.g Fleet Server config) might contain multiple host URL's. Since we provide the host URL at time of enrollment currently, it seems to me this will need to change on Fleet Server's side. |
Is there any dependency on Fleet Server to make use of the new configs? If so, we might want to add a feature flag in case the changes are not ready at the same time. |
I am not sure about this. Feature flagging may be a safe bet either way, though. In terms of how these changes interact with Fleet Server, I'm not sure. I think for the actual process of starting Fleet Server nothing needs to change. Kibana will still generate a service token used for bootstrapping a Fleet Server and I don't think there will be any changes to that process. I could be wrong about this. For the agent enrollment process, Kibana will generate an enrollment token for the enrollment command we present to the user in the "Add Agent" flow, so that agent should know it's configured Fleet Server host based on this token. @narph @michel-laterman could you take a look at this work when you get a chance and provide any thoughts you might have on how the changes in configuration for Fleet Server hosts on the UI side might affect Fleet Server? |
@kpollich Regarding this? should we support also this in Kibana config file? we currently have a settings
|
Yes good call. I will add an implementation note for updating the Kibana configuration options for Fleet Server hosts to support the new schema. Edit: Added a checklist item under the setup/plumbing section |
One thing I'd like feedback on here and in #140533 is this open question
Does it make more sense to spin up new saved objects types (Fleet Server Config + Proxy) and new CRUD APIs for those saved object types or to add more complex fields to our existing settings saved object? If we were to expand the
I wonder if this would simplify the implementation for this + the proxy work by removing the need to set up new APIs, etc. For outputs and binary download sources, though, we have distinct saved object types since there are enough fields to warrant it. I think proxy settings also have enough fields that they could easily be their own SO, but fleet server configs maybe not. For consistency of approach, it probably makes sense to pursue separate saved objects and APIs for these various resources we're managing via the settings page, but I wonder if it'd be worth rethinking that approach. Curious for others' thoughts. |
I am wondering if it make sense to clean |
Is there anything in I would vote for creating a new SO type for fleet server configs, so that it has a more meaningful name (and not the legacy |
Thanks all, the original implementation plan in the description here will remain valid then. |
Hi Team, Status:
Issue for failed case under #146769 Build details: Please let us know if anything else is required from our end. |
Related to elastic/fleet-server#903
Multiple Fleet Servers UI
We're aiming to support our Fleet scalability efforts by allowing customers to load balance their agents across multiple Fleet Server instances. Currently, when multiple Fleet Server hosts are configured, Fleet Server will round-robin between the configured hosts. We're looking to change this so users can explicitly assign agents to a specific Fleet Server via an agent policy to better support high-scale environments where many agents may be distributed geographically.
To support this functionality, we'll need to make some changes to how we model Fleet Server hosts, namely:
/settings
page similar to outputs and agent download binariesFrom a UX perspective, it's important that we have a "single source of truth" for managing Fleet Server. We want to funnel users to a single UI related to their Fleet Servers to avoid confusion.
Proposed Fleet Server config saved object schema:
We'll also need to add a setting for which Fleet Server is used when enrolling agents in a given agent policy. This should be displayed alongside the existing output settings for agent policies, and will appear in any enrollment commands we display to the user.
In addition, we'd like to change the "no fleet server" state on the
/agents
landing page in Fleet to direct users to the new/settings
-> "Add a Fleet Server" flyout workflow.⚒️ Implementation
config/kibana.yml
config support to account for new Fleet Server host schema/settings
default
/settings
page and opens the new Fleet Server flyout🎨 Design references
Show design samples
New settings page
"No Fleet Server" landing page experience
"Add a Fleet Server" first-time experience in new
/settings
flyoutEdit existing Fleet Server
Multiple URL UI
New Delete modal
Per-policy Fleet Server selection
❓Open Questions
Fleet Server Config
saved object, would it make more sense to expand our existingingest_manager_settings
SO type to contain an array of fleet server config objects instead of just an array of fleet server host strings?fleet.hosts
array of strings that contains the available Fleet Server hosts. Does the behavior or usage of this field need to change?Fleet Server 1
orFleet Server 2
style name would sufficeThe text was updated successfully, but these errors were encountered: