-
Notifications
You must be signed in to change notification settings - Fork 8.2k
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] RBAC - Make agents write APIs space aware - 4/4 #191277
[Fleet] RBAC - Make agents write APIs space aware - 4/4 #191277
Conversation
/ci |
🤖 GitHub commentsExpand to view the GitHub comments
Just comment with:
|
Hey @nchaulet - this PR should be ready for first review - I've detailed the changes in the description to help with the review. I'm still looking if I can figure out tests for queries in batches as these have proven unstable, otherwise I think this is everything. |
x-pack/test/fleet_api_integration/apis/space_awareness/agents.ts
Outdated
Show resolved
Hide resolved
/ci |
Flaky Test Runner Stats🎉 All tests passed! - kibana-flaky-test-suite-runner#6810[✅] x-pack/test/fleet_api_integration/config.space_awareness.ts: 200/200 tests passed. |
Pinging @elastic/fleet (Team:Fleet) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@elasticmachine merge upstream |
@elasticmachine merge upstream |
💚 Build Succeeded
Metrics [docs]
History
To update your PR or re-run it, just comment with: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code LGTM 🚀 renaming namespace
=> spaceId
remove a lot of confusion that's great
## Summary Closes elastic#185040 Followup to: elastic#188507 elastic#189519 elastic#190069 This PR contains the last required changed for making Fleet agents write APIs space aware: * Implement space awareness in the following endpoints: * `POST /agents/{agentId}/unenroll` * `POST /agents/{agentId}/request_diagnostics` * `POST /agents/bulk_unenroll` * `POST /agents/bulk_request_diagnostics` * Fix a bug in `POST /agents/bulk_update_agent_tags` where the space id was not passed. * Simply the setting of the `namespaces` property when creating agent actions when the space id is known. * Rename `currentNamespace` to `currentSpaceId` where appropriate (see comment below). * Add API integration tests and consolidate existing ones. ~⚠️ At the time of writing, I would like there to be more tests covering bulk query processing in batches, which are currently lacking. I have experienced difficulties getting those tests to pass consistently.~ Filed [followup issue](elastic#191643) for those. ### A note on terminology As pointed out in elastic#191083 (comment), it seems that the terms "namespace" and "space id" are occasionally used interchangeably in some parts of the codebase to refer to a Kibana space. For instance, documents in Fleet indices (agents, agent policies, agent actions...) [possess a `namespaces` property](elastic/elasticsearch#108363) to track the spaces they belong to. The current space id is also returned using the Saved Object client's `getCurrentNamespace` function. However, "namespace" is also a datastream property. In the Agent policy settings UI, the "Spaces" property (which will be linked to the saved object's `namespaces` property) is above the "Default namespace" property, which relates to the integration's data streams: <img width="1916" alt="Screenshot 2024-08-26 at 14 51 10" src="https://github.com/user-attachments/assets/fe2a0948-3387-4a93-96dc-90fc5cf1a683"> This should not be a source of major issues, but is best clarified for future reference. In this PR, I've replaced some occurrences of `namespace` with `spaceId` where appropriate to try to maximise the use of the latter. ### Testing * This PR should be put through the Flaky Test Runner prior to merging (I will kick the job). * Manual testing should also be performed for the new endpoints mentioned above. ### Checklist - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [x] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed --------- Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
Summary
Closes #185040
Followup to:
#188507
#189519
#190069
This PR contains the last required changed for making Fleet agents write APIs space aware:
POST /agents/{agentId}/unenroll
POST /agents/{agentId}/request_diagnostics
POST /agents/bulk_unenroll
POST /agents/bulk_request_diagnostics
POST /agents/bulk_update_agent_tags
where the space id was not passed.namespaces
property when creating agent actions when the space id is known.currentNamespace
tocurrentSpaceId
where appropriate (see comment below).⚠️ At the time of writing, I would like there to be more tests covering bulk query processing in batches, which are currently lacking. I have experienced difficulties getting those tests to pass consistently.Filed followup issue for those.A note on terminology
As pointed out in #191083 (comment), it seems that the terms "namespace" and "space id" are occasionally used interchangeably in some parts of the codebase to refer to a Kibana space. For instance, documents in Fleet indices (agents, agent policies, agent actions...) possess a
namespaces
property to track the spaces they belong to. The current space id is also returned using the Saved Object client'sgetCurrentNamespace
function.However, "namespace" is also a datastream property. In the Agent policy settings UI, the "Spaces" property (which will be linked to the saved object's
namespaces
property) is above the "Default namespace" property, which relates to the integration's data streams:This should not be a source of major issues, but is best clarified for future reference. In this PR, I've replaced some occurrences of
namespace
withspaceId
where appropriate to try to maximise the use of the latter.Testing
Checklist