-
Notifications
You must be signed in to change notification settings - Fork 8.5k
[LockManager] Expose as package #219220
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
[LockManager] Expose as package #219220
Conversation
|
Pinging @elastic/obs-ai-assistant (Team:Obs AI Assistant) |
🤖 GitHub commentsExpand to view the GitHub comments
Just comment with:
|
afharo
left a comment
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.
kibana.jsonc LGTM
…/kibana into extract-lock-manager-to-plugin
…t --include-path /api/status --include-path /api/alerting/rule/ --include-path /api/alerting/rules --include-path /api/actions --include-path /api/security/role --include-path /api/spaces --include-path /api/streams --include-path /api/fleet --include-path /api/dashboards --include-path /api/saved_objects/_import --include-path /api/saved_objects/_export --include-path /api/alerting/maintenance_window --update'
|
…urce-definitions/scripts/fix-location-collection.ts'
| } | ||
| } | ||
|
|
||
| export async function setupLockManagerIndex(esClient: ElasticsearchClient, logger: Logger) { |
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.
if this function never throws, how does the lock manager know it can attempt to acquire the lock?
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.
I changed ensureTemplatesAndIndexCreated so it now throws if the template or index can't be created
…/kibana into extract-lock-manager-to-plugin
💚 Build Succeeded
Metrics [docs]Public APIs missing comments
Unknown metric groupsAPI count
ESLint disabled line counts
Total ESLint disabled count
History
|
|
Starting backport for target branches: 8.19 |
💔 All backports failed
Manual backportTo create the backport manually run: Questions ?Please refer to the Backport tool documentation |
Expose LockManager as package to make it easier to consume from other plugins cc @nchaulet --------- Co-authored-by: kibanamachine <[email protected]> Co-authored-by: Viduni Wickramarachchi <[email protected]>
💚 All backports created successfully
Note: Successful backport PRs will be merged automatically after passing CI. Questions ?Please refer to the Backport tool documentation |
Expose LockManager as package to make it easier to consume from other plugins cc @nchaulet --------- Co-authored-by: kibanamachine <[email protected]> Co-authored-by: Viduni Wickramarachchi <[email protected]> (cherry picked from commit 8b8d569)
# Backport This will backport the following commits from `main` to `8.19`: - [[Obs AI Assistant] Skip lock tests in MKI temporarily (#216753)](#216753) - [[Obs AI Assistant] Replace Task Manager usage with Lock Manager (#216916)](#216916) - [[LockManager] Ensure index template are created (#218901)](#218901) - [[LockManager] Expose as package (#219220)](#219220) <!--- Backport version: 9.6.6 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) <!--BACKPORT [{"author":{"name":"Søren Louv-Jansen","email":"[email protected]"},"sourceCommit":{"committedDate":"2025-04-02T09:28:35Z","message":"[Obs AI Assistant] Skip lock tests in MKI temporarily (#216753)\n\nTests added in #216397 are failing\non MKI. Skipping temporarily in the affected environment\n\n### Error\n\n```\n └- ✖ fail: Serverless Observability - Deployment-agnostic API integration tests observability AI Assistant LockManager Basic lock operations acquires the lock when not held\n │ ResponseError: security_exception\n │ \tRoot causes:\n │ \t\tsecurity_exception: action [indices:admin/create] is unauthorized for user [testing-internal] with effective roles [superuser] on restricted indices [.kibana_locks-000001], this action is granted by the index privileges [create_index,manage,all]\n```\n\n### Root cause\n```ts\nconst es = getService('es');\nes.deleteByQuery({ index: '.kibana_locks-000001', query: { match_all: {} }});\n```","sha":"8bcce2e89b6be758d144b9b802eb9d2a09dd62cf","branchLabelMapping":{"^v9.1.0$":"main","^v8.19.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","backport:skip","v9.1.0","v8.19.0"],"title":"[Obs AI Assistant] Skip lock tests in MKI temporarily","number":216753,"url":"https://github.com/elastic/kibana/pull/216753","mergeCommit":{"message":"[Obs AI Assistant] Skip lock tests in MKI temporarily (#216753)\n\nTests added in #216397 are failing\non MKI. Skipping temporarily in the affected environment\n\n### Error\n\n```\n └- ✖ fail: Serverless Observability - Deployment-agnostic API integration tests observability AI Assistant LockManager Basic lock operations acquires the lock when not held\n │ ResponseError: security_exception\n │ \tRoot causes:\n │ \t\tsecurity_exception: action [indices:admin/create] is unauthorized for user [testing-internal] with effective roles [superuser] on restricted indices [.kibana_locks-000001], this action is granted by the index privileges [create_index,manage,all]\n```\n\n### Root cause\n```ts\nconst es = getService('es');\nes.deleteByQuery({ index: '.kibana_locks-000001', query: { match_all: {} }});\n```","sha":"8bcce2e89b6be758d144b9b802eb9d2a09dd62cf"}},"sourceBranch":"main","suggestedTargetBranches":["8.19"],"targetPullRequestStates":[{"branch":"main","label":"v9.1.0","branchLabelMappingKey":"^v9.1.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/216753","number":216753,"mergeCommit":{"message":"[Obs AI Assistant] Skip lock tests in MKI temporarily (#216753)\n\nTests added in #216397 are failing\non MKI. Skipping temporarily in the affected environment\n\n### Error\n\n```\n └- ✖ fail: Serverless Observability - Deployment-agnostic API integration tests observability AI Assistant LockManager Basic lock operations acquires the lock when not held\n │ ResponseError: security_exception\n │ \tRoot causes:\n │ \t\tsecurity_exception: action [indices:admin/create] is unauthorized for user [testing-internal] with effective roles [superuser] on restricted indices [.kibana_locks-000001], this action is granted by the index privileges [create_index,manage,all]\n```\n\n### Root cause\n```ts\nconst es = getService('es');\nes.deleteByQuery({ index: '.kibana_locks-000001', query: { match_all: {} }});\n```","sha":"8bcce2e89b6be758d144b9b802eb9d2a09dd62cf"}},{"branch":"8.x","label":"v8.19.0","branchLabelMappingKey":"^v8.19.0$","isSourceBranch":false,"state":"NOT_CREATED"}]},{"author":{"name":"Søren Louv-Jansen","email":"[email protected]"},"sourceCommit":{"committedDate":"2025-04-08T08:13:00Z","message":"[Obs AI Assistant] Replace Task Manager usage with Lock Manager (#216916)\n\nThis PR replaces usage of the Kibana Task Manager with the [LockManager\nutility](#216397) that ensures\nstrict mutual exclusion when running operations such as re-indexing or\ndata migrations.\n\n---------\n\nCo-authored-by: Viduni Wickramarachchi <[email protected]>\nCo-authored-by: kibanamachine <[email protected]>","sha":"624410524f1a07dc72d92759464a3f4a85466c7a","branchLabelMapping":{"^v9.1.0$":"main","^v8.19.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","backport:skip","Team:Obs AI Assistant","v9.1.0"],"title":"[Obs AI Assistant] Replace Task Manager usage with Lock Manager","number":216916,"url":"https://github.com/elastic/kibana/pull/216916","mergeCommit":{"message":"[Obs AI Assistant] Replace Task Manager usage with Lock Manager (#216916)\n\nThis PR replaces usage of the Kibana Task Manager with the [LockManager\nutility](#216397) that ensures\nstrict mutual exclusion when running operations such as re-indexing or\ndata migrations.\n\n---------\n\nCo-authored-by: Viduni Wickramarachchi <[email protected]>\nCo-authored-by: kibanamachine <[email protected]>","sha":"624410524f1a07dc72d92759464a3f4a85466c7a"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.1.0","branchLabelMappingKey":"^v9.1.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/216916","number":216916,"mergeCommit":{"message":"[Obs AI Assistant] Replace Task Manager usage with Lock Manager (#216916)\n\nThis PR replaces usage of the Kibana Task Manager with the [LockManager\nutility](#216397) that ensures\nstrict mutual exclusion when running operations such as re-indexing or\ndata migrations.\n\n---------\n\nCo-authored-by: Viduni Wickramarachchi <[email protected]>\nCo-authored-by: kibanamachine <[email protected]>","sha":"624410524f1a07dc72d92759464a3f4a85466c7a"}}]},{"author":{"name":"Søren Louv-Jansen","email":"[email protected]"},"sourceCommit":{"committedDate":"2025-04-23T23:34:28Z","message":"[LockManager] Ensure index template are created (#218901)\n\nCloses: https://github.com/elastic/kibana/issues/218944\n\nThe index template for the Lock Manager was not created, causing index\nmappings and settings to be incorrect.\nRoot cause: the function responsible for creating the index template\n(`ensureTemplatesAndIndexCreated`) was never invoked - only during\nautomated testing 🤦\n\n## Manual testing steps\n\nThe mappings for the lock manager index (`.kibana_locks-000001`) should\nmatch this:\n```ts\n {\n mappings: {\n dynamic: false,\n properties: {\n token: { type: 'keyword' },\n metadata: { enabled: false },\n createdAt: { type: 'date' },\n expiresAt: { type: 'date' },\n },\n },\n}\n```\n\n### Test 1\n\nIn this test we make sure that the LockManager library can recover and\nfix the mappings if the existing index has invalid mappings\n\n#### Delete existing assets if they already exist\n```\nDELETE .kibana_locks-000001\nDELETE _index_template/.kibana_locks-index-template\nDELETE _component_template/.kibana_locks-component\n```\n\n#### Create lock index. This is invalid because it does not have the\ncorrect mappings\n```\nPUT .kibana_locks-000001\n```\n\n(Restart Kibana)\n\n#### Check mappings are correct\n```\nGET .kibana_locks-000001/_mapping\n```\n\n### Test 2\n\nIn this test we make sure that out of the box, the LockManager library\ncreates an index with the correct mappings\n\n```\nDELETE .kibana_locks-000001\nDELETE _index_template/.kibana_locks-index-template\nDELETE _component_template/.kibana_locks-component\n```\n\n(Restart Kibana)\n\n#### Check mappings are correct\n```\nGET .kibana_locks-000001/_mapping\n```\n\nRelated: https://github.com/elastic/kibana/pull/216916\nhttps://github.com/elastic/kibana/pull/216397\n\n---------\n\nCo-authored-by: Viduni Wickramarachchi <[email protected]>","sha":"f684ea4071dfb5e6acc4cb057b46acbf915943d7","branchLabelMapping":{"^v9.1.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:fix","backport:skip","Team:Obs AI Assistant","ci:project-deploy-observability","v9.1.0"],"title":"[LockManager] Ensure index template are created","number":218901,"url":"https://github.com/elastic/kibana/pull/218901","mergeCommit":{"message":"[LockManager] Ensure index template are created (#218901)\n\nCloses: https://github.com/elastic/kibana/issues/218944\n\nThe index template for the Lock Manager was not created, causing index\nmappings and settings to be incorrect.\nRoot cause: the function responsible for creating the index template\n(`ensureTemplatesAndIndexCreated`) was never invoked - only during\nautomated testing 🤦\n\n## Manual testing steps\n\nThe mappings for the lock manager index (`.kibana_locks-000001`) should\nmatch this:\n```ts\n {\n mappings: {\n dynamic: false,\n properties: {\n token: { type: 'keyword' },\n metadata: { enabled: false },\n createdAt: { type: 'date' },\n expiresAt: { type: 'date' },\n },\n },\n}\n```\n\n### Test 1\n\nIn this test we make sure that the LockManager library can recover and\nfix the mappings if the existing index has invalid mappings\n\n#### Delete existing assets if they already exist\n```\nDELETE .kibana_locks-000001\nDELETE _index_template/.kibana_locks-index-template\nDELETE _component_template/.kibana_locks-component\n```\n\n#### Create lock index. This is invalid because it does not have the\ncorrect mappings\n```\nPUT .kibana_locks-000001\n```\n\n(Restart Kibana)\n\n#### Check mappings are correct\n```\nGET .kibana_locks-000001/_mapping\n```\n\n### Test 2\n\nIn this test we make sure that out of the box, the LockManager library\ncreates an index with the correct mappings\n\n```\nDELETE .kibana_locks-000001\nDELETE _index_template/.kibana_locks-index-template\nDELETE _component_template/.kibana_locks-component\n```\n\n(Restart Kibana)\n\n#### Check mappings are correct\n```\nGET .kibana_locks-000001/_mapping\n```\n\nRelated: https://github.com/elastic/kibana/pull/216916\nhttps://github.com/elastic/kibana/pull/216397\n\n---------\n\nCo-authored-by: Viduni Wickramarachchi <[email protected]>","sha":"f684ea4071dfb5e6acc4cb057b46acbf915943d7"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.1.0","branchLabelMappingKey":"^v9.1.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/218901","number":218901,"mergeCommit":{"message":"[LockManager] Ensure index template are created (#218901)\n\nCloses: https://github.com/elastic/kibana/issues/218944\n\nThe index template for the Lock Manager was not created, causing index\nmappings and settings to be incorrect.\nRoot cause: the function responsible for creating the index template\n(`ensureTemplatesAndIndexCreated`) was never invoked - only during\nautomated testing 🤦\n\n## Manual testing steps\n\nThe mappings for the lock manager index (`.kibana_locks-000001`) should\nmatch this:\n```ts\n {\n mappings: {\n dynamic: false,\n properties: {\n token: { type: 'keyword' },\n metadata: { enabled: false },\n createdAt: { type: 'date' },\n expiresAt: { type: 'date' },\n },\n },\n}\n```\n\n### Test 1\n\nIn this test we make sure that the LockManager library can recover and\nfix the mappings if the existing index has invalid mappings\n\n#### Delete existing assets if they already exist\n```\nDELETE .kibana_locks-000001\nDELETE _index_template/.kibana_locks-index-template\nDELETE _component_template/.kibana_locks-component\n```\n\n#### Create lock index. This is invalid because it does not have the\ncorrect mappings\n```\nPUT .kibana_locks-000001\n```\n\n(Restart Kibana)\n\n#### Check mappings are correct\n```\nGET .kibana_locks-000001/_mapping\n```\n\n### Test 2\n\nIn this test we make sure that out of the box, the LockManager library\ncreates an index with the correct mappings\n\n```\nDELETE .kibana_locks-000001\nDELETE _index_template/.kibana_locks-index-template\nDELETE _component_template/.kibana_locks-component\n```\n\n(Restart Kibana)\n\n#### Check mappings are correct\n```\nGET .kibana_locks-000001/_mapping\n```\n\nRelated: https://github.com/elastic/kibana/pull/216916\nhttps://github.com/elastic/kibana/pull/216397\n\n---------\n\nCo-authored-by: Viduni Wickramarachchi <[email protected]>","sha":"f684ea4071dfb5e6acc4cb057b46acbf915943d7"}}]},{"author":{"name":"Søren Louv-Jansen","email":"[email protected]"},"sourceCommit":{"committedDate":"2025-04-29T16:42:45Z","message":"[LockManager] Expose as package (#219220)\n\nExpose LockManager as package to make it easier to consume from other\nplugins\n\ncc @nchaulet\n\n---------\n\nCo-authored-by: kibanamachine <[email protected]>\nCo-authored-by: Viduni Wickramarachchi <[email protected]>","sha":"8b8d569986f216185755aa7ac98a2a3bbeb84f76","branchLabelMapping":{"^v9.1.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","Team:Obs AI Assistant","ci:project-deploy-observability","backport:version","v9.1.0","v8.19.0"],"title":"[LockManager] Expose as package","number":219220,"url":"https://github.com/elastic/kibana/pull/219220","mergeCommit":{"message":"[LockManager] Expose as package (#219220)\n\nExpose LockManager as package to make it easier to consume from other\nplugins\n\ncc @nchaulet\n\n---------\n\nCo-authored-by: kibanamachine <[email protected]>\nCo-authored-by: Viduni Wickramarachchi <[email protected]>","sha":"8b8d569986f216185755aa7ac98a2a3bbeb84f76"}},"sourceBranch":"main","suggestedTargetBranches":["8.19"],"targetPullRequestStates":[{"branch":"main","label":"v9.1.0","branchLabelMappingKey":"^v9.1.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/219220","number":219220,"mergeCommit":{"message":"[LockManager] Expose as package (#219220)\n\nExpose LockManager as package to make it easier to consume from other\nplugins\n\ncc @nchaulet\n\n---------\n\nCo-authored-by: kibanamachine <[email protected]>\nCo-authored-by: Viduni Wickramarachchi <[email protected]>","sha":"8b8d569986f216185755aa7ac98a2a3bbeb84f76"}},{"branch":"8.19","label":"v8.19.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> --------- Co-authored-by: kibanamachine <[email protected]>
Expose LockManager as package to make it easier to consume from other plugins cc @nchaulet --------- Co-authored-by: kibanamachine <[email protected]> Co-authored-by: Viduni Wickramarachchi <[email protected]>
Expose LockManager as package to make it easier to consume from other plugins
cc @nchaulet