-
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] Fleet should allow an integration to be installed/reinstalled into another space #172963
Comments
Pinging @elastic/fleet (Team:Fleet) |
Yes this would be a very very good improvement. We want to install dashboards to multiple spaces and have them upgraded when the integration is upgraded. We're not using the integration dashboards as last time we deployed them into our multispace Kibana they ended up broken. |
I am spending some time this sprint exploring this functionality. Here's what I am thinking of build as a proof of concept:
We'll need to explore the behavior of duplicating these assets across spaces, as it's not totally clear what will happen to markdown panel links or other objects. So, a major goal of the proof of concept here will be to validate the workflow of duplicating assets into multiple spaces functions acceptably. |
@kpollich what do you think of creating a dedicated endpoint to install assets in a new space, it's what we had in mind for package install recovery?
What will be the expected behaviour on upgrade/uninstall are we upgrading/removing all assets in all spaces? |
That makes sense, I expect this action will definitely overlap with the package recovery API work. |
Yes this is what I had in mind. The assets will appear in the references array regardless of space, and be brought along during upgrade/uninstall. |
I started down the path of implementing this, but I feel that #175592 will be a better path to unlock this functionality. The Once #175592 has landed, we should only need to wire up the new UI elements here to resolve this issue and perhaps add the |
Relevant issue within the space awareness project: #182735 |
@pgayvallet @jloleysens We change a little the approach we previously discsused to have the installation saved object space agnostics (done in #183920) Integration are a mix of space aware assets (kibana assets) and global assets ingest pipelines, index templates, and it seems it will be easier for us to manage them with a space agnostic save object and allow to keep track of the space specific assets in a property of that saved object, does that approach make sense to you? |
As long as you're fine with the information for all spaces being stored in an object accessible from any of them (so basically not using spaces RBAC for the kibana-side of your assets), I'd say it could. It's more a question to ask to the @elastic/kibana-security team though. |
At first glance, it might become problematic. Can you please share a bit more info on what information is stored in the |
@azasypkin we store the reference to the installed assets elasticsearch one and kibana ones, a user will need the Integrations:Read or Integrations:All to manipulate that through Fleet APIs |
Hi Team, We have created 04 testcases under Testmo for this feature under Fleet test suite at links:
Please let us know if any other scenario needs to be added from our end. Thanks! |
Hi Team, We have executed 04 testcases under the Feature test run for the 8.15.0 release at the link: Status: PASS: 04 Build details: As the testing is completed on this feature, we are marking this as QA:Validated. Please let us know if anything else is required from our end. |
Today, the only mechanism for sharing integration assets between spaces is manually copying the assets to another space. We should investigate the feasibility of Fleet allowing integrations to be installed in multiple spaces, where assets would be fully duplicated in each space.
This would be a stop-gap solution until #167901 is implemented. Once shareable analytics are fully supported, Fleet could install assets in any number of spaces by sharing them across the spaces instead of duplicating the assets.
Implementation plan
additional_asset_spaces[]
property toInstallation
saved object typeinstalled_kibana_space_id !== current_space_id AND !additional_asset_spaces.includes(current_space_id)
, e.g. the assets are not installed in the current space at all, but the integration is installed in another spacePOST /api/fleet/epm/packages/:pkgName/:pkgVersion
with two new parameters:additional_space_id
andkibana_assets_only
that will add the current space toadditional_asset_spaces
and only attempt to install Kibana assetsinstalled_kibana_space_id !== current_space_id AND additional_asset_spaces.includes(current_space_id)
, e.g. the assets are installed in the current space, but the integration itself is installed in another spaceforce
parameter added to reinstallinstalled_kibana_space_id === current_space_id
The text was updated successfully, but these errors were encountered: