Skip to content

Commit 0c0cb2a

Browse files
[8.16] [Security KB] Fix setup KB (#201175) (#202392)
# Backport This will backport the following commits from `main` to `8.16`: - [[Security KB] Fix setup KB (#201175)](#201175) <!--- Backport version: 8.9.8 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Patryk Kopyciński","email":"contact@patrykkopycinski.com"},"sourceCommit":{"committedDate":"2024-11-22T16:58:24Z","message":"[Security KB] Fix setup KB (#201175)\n\n## Summary\r\n\r\nFix an issue with auto-recovery of Knowledge Base setup. \r\n\r\nWhen the KB setup was initialized on an undersized cluster, the model\r\nfailed to deploy correctly. This resulted in the KB ending up in a\r\nbroken state, repeatedly displaying the Setup KB button.\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"1cb56d7196cf60b03cb539f32f6a466a17141e02","branchLabelMapping":{"^v9.0.0$":"main","^v8.18.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["bug","release_note:fix","v9.0.0","ci:cloud-deploy","Team:Security Generative AI","backport:version","v8.17.0","v8.18.0","v8.16.2"],"number":201175,"url":"https://github.com/elastic/kibana/pull/201175","mergeCommit":{"message":"[Security KB] Fix setup KB (#201175)\n\n## Summary\r\n\r\nFix an issue with auto-recovery of Knowledge Base setup. \r\n\r\nWhen the KB setup was initialized on an undersized cluster, the model\r\nfailed to deploy correctly. This resulted in the KB ending up in a\r\nbroken state, repeatedly displaying the Setup KB button.\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"1cb56d7196cf60b03cb539f32f6a466a17141e02"}},"sourceBranch":"main","suggestedTargetBranches":["8.16"],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","labelRegex":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/201175","number":201175,"mergeCommit":{"message":"[Security KB] Fix setup KB (#201175)\n\n## Summary\r\n\r\nFix an issue with auto-recovery of Knowledge Base setup. \r\n\r\nWhen the KB setup was initialized on an undersized cluster, the model\r\nfailed to deploy correctly. This resulted in the KB ending up in a\r\nbroken state, repeatedly displaying the Setup KB button.\r\n\r\n---------\r\n\r\nCo-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>","sha":"1cb56d7196cf60b03cb539f32f6a466a17141e02"}},{"branch":"8.17","label":"v8.17.0","labelRegex":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"url":"https://github.com/elastic/kibana/pull/201436","number":201436,"state":"MERGED","mergeCommit":{"sha":"252fbfd3de5279b450358e8ffa5c87c58a8767c6","message":"[8.17] [Security KB] Fix setup KB (#201175) (#201436)\n\n# Backport\n\nThis will backport the following commits from `main` to `8.17`:\n- [[Security KB] Fix setup KB\n(#201175)](https://github.com/elastic/kibana/pull/201175)\n\n<!--- Backport version: 9.4.3 -->\n\n### Questions ?\nPlease refer to the [Backport tool\ndocumentation](https://github.com/sqren/backport)\n\n<!--BACKPORT [{\"author\":{\"name\":\"Patryk\nKopyciński\",\"email\":\"contact@patrykkopycinski.com\"},\"sourceCommit\":{\"committedDate\":\"2024-11-22T16:58:24Z\",\"message\":\"[Security\nKB] Fix setup KB (#201175)\\n\\n## Summary\\r\\n\\r\\nFix an issue with\nauto-recovery of Knowledge Base setup. \\r\\n\\r\\nWhen the KB setup was\ninitialized on an undersized cluster, the model\\r\\nfailed to deploy\ncorrectly. This resulted in the KB ending up in a\\r\\nbroken state,\nrepeatedly displaying the Setup KB\nbutton.\\r\\n\\r\\n---------\\r\\n\\r\\nCo-authored-by: kibanamachine\n<42973632+kibanamachine@users.noreply.github.com>\",\"sha\":\"1cb56d7196cf60b03cb539f32f6a466a17141e02\",\"branchLabelMapping\":{\"^v9.0.0$\":\"main\",\"^v8.18.0$\":\"8.x\",\"^v(\\\\d+).(\\\\d+).\\\\d+$\":\"$1.$2\"}},\"sourcePullRequest\":{\"labels\":[\"bug\",\"release_note:fix\",\"v9.0.0\",\"ci:cloud-deploy\",\"Team:Security\nGenerative\nAI\",\"backport:version\",\"v8.17.0\",\"v8.18.0\",\"v8.16.2\"],\"title\":\"[Security\nKB] Fix setup\nKB\",\"number\":201175,\"url\":\"https://github.com/elastic/kibana/pull/201175\",\"mergeCommit\":{\"message\":\"[Security\nKB] Fix setup KB (#201175)\\n\\n## Summary\\r\\n\\r\\nFix an issue with\nauto-recovery of Knowledge Base setup. \\r\\n\\r\\nWhen the KB setup was\ninitialized on an undersized cluster, the model\\r\\nfailed to deploy\ncorrectly. This resulted in the KB ending up in a\\r\\nbroken state,\nrepeatedly displaying the Setup KB\nbutton.\\r\\n\\r\\n---------\\r\\n\\r\\nCo-authored-by: kibanamachine\n<42973632+kibanamachine@users.noreply.github.com>\",\"sha\":\"1cb56d7196cf60b03cb539f32f6a466a17141e02\"}},\"sourceBranch\":\"main\",\"suggestedTargetBranches\":[\"8.17\",\"8.x\",\"8.16\"],\"targetPullRequestStates\":[{\"branch\":\"main\",\"label\":\"v9.0.0\",\"branchLabelMappingKey\":\"^v9.0.0$\",\"isSourceBranch\":true,\"state\":\"MERGED\",\"url\":\"https://github.com/elastic/kibana/pull/201175\",\"number\":201175,\"mergeCommit\":{\"message\":\"[Security\nKB] Fix setup KB (#201175)\\n\\n## Summary\\r\\n\\r\\nFix an issue with\nauto-recovery of Knowledge Base setup. \\r\\n\\r\\nWhen the KB setup was\ninitialized on an undersized cluster, the model\\r\\nfailed to deploy\ncorrectly. This resulted in the KB ending up in a\\r\\nbroken state,\nrepeatedly displaying the Setup KB\nbutton.\\r\\n\\r\\n---------\\r\\n\\r\\nCo-authored-by: kibanamachine\n<42973632+kibanamachine@users.noreply.github.com>\",\"sha\":\"1cb56d7196cf60b03cb539f32f6a466a17141e02\"}},{\"branch\":\"8.17\",\"label\":\"v8.17.0\",\"branchLabelMappingKey\":\"^v(\\\\d+).(\\\\d+).\\\\d+$\",\"isSourceBranch\":false,\"state\":\"NOT_CREATED\"},{\"branch\":\"8.x\",\"label\":\"v8.18.0\",\"branchLabelMappingKey\":\"^v8.18.0$\",\"isSourceBranch\":false,\"state\":\"NOT_CREATED\"},{\"branch\":\"8.16\",\"label\":\"v8.16.2\",\"branchLabelMappingKey\":\"^v(\\\\d+).(\\\\d+).\\\\d+$\",\"isSourceBranch\":false,\"state\":\"NOT_CREATED\"}]}]\nBACKPORT-->\n\nCo-authored-by: Patryk Kopyciński <contact@patrykkopycinski.com>"}},{"branch":"8.x","label":"v8.18.0","labelRegex":"^v8.18.0$","isSourceBranch":false,"url":"https://github.com/elastic/kibana/pull/201437","number":201437,"state":"MERGED","mergeCommit":{"sha":"7d6c034e25e6d9158edd6c5b1ab905265abb2bdb","message":"[8.x] [Security KB] Fix setup KB (#201175) (#201437)\n\n# Backport\n\nThis will backport the following commits from `main` to `8.x`:\n- [[Security KB] Fix setup KB\n(#201175)](https://github.com/elastic/kibana/pull/201175)\n\n<!--- Backport version: 9.4.3 -->\n\n### Questions ?\nPlease refer to the [Backport tool\ndocumentation](https://github.com/sqren/backport)\n\n<!--BACKPORT [{\"author\":{\"name\":\"Patryk\nKopyciński\",\"email\":\"contact@patrykkopycinski.com\"},\"sourceCommit\":{\"committedDate\":\"2024-11-22T16:58:24Z\",\"message\":\"[Security\nKB] Fix setup KB (#201175)\\n\\n## Summary\\r\\n\\r\\nFix an issue with\nauto-recovery of Knowledge Base setup. \\r\\n\\r\\nWhen the KB setup was\ninitialized on an undersized cluster, the model\\r\\nfailed to deploy\ncorrectly. This resulted in the KB ending up in a\\r\\nbroken state,\nrepeatedly displaying the Setup KB\nbutton.\\r\\n\\r\\n---------\\r\\n\\r\\nCo-authored-by: kibanamachine\n<42973632+kibanamachine@users.noreply.github.com>\",\"sha\":\"1cb56d7196cf60b03cb539f32f6a466a17141e02\",\"branchLabelMapping\":{\"^v9.0.0$\":\"main\",\"^v8.18.0$\":\"8.x\",\"^v(\\\\d+).(\\\\d+).\\\\d+$\":\"$1.$2\"}},\"sourcePullRequest\":{\"labels\":[\"bug\",\"release_note:fix\",\"v9.0.0\",\"ci:cloud-deploy\",\"Team:Security\nGenerative\nAI\",\"backport:version\",\"v8.17.0\",\"v8.18.0\",\"v8.16.2\"],\"title\":\"[Security\nKB] Fix setup\nKB\",\"number\":201175,\"url\":\"https://github.com/elastic/kibana/pull/201175\",\"mergeCommit\":{\"message\":\"[Security\nKB] Fix setup KB (#201175)\\n\\n## Summary\\r\\n\\r\\nFix an issue with\nauto-recovery of Knowledge Base setup. \\r\\n\\r\\nWhen the KB setup was\ninitialized on an undersized cluster, the model\\r\\nfailed to deploy\ncorrectly. This resulted in the KB ending up in a\\r\\nbroken state,\nrepeatedly displaying the Setup KB\nbutton.\\r\\n\\r\\n---------\\r\\n\\r\\nCo-authored-by: kibanamachine\n<42973632+kibanamachine@users.noreply.github.com>\",\"sha\":\"1cb56d7196cf60b03cb539f32f6a466a17141e02\"}},\"sourceBranch\":\"main\",\"suggestedTargetBranches\":[\"8.17\",\"8.x\",\"8.16\"],\"targetPullRequestStates\":[{\"branch\":\"main\",\"label\":\"v9.0.0\",\"branchLabelMappingKey\":\"^v9.0.0$\",\"isSourceBranch\":true,\"state\":\"MERGED\",\"url\":\"https://github.com/elastic/kibana/pull/201175\",\"number\":201175,\"mergeCommit\":{\"message\":\"[Security\nKB] Fix setup KB (#201175)\\n\\n## Summary\\r\\n\\r\\nFix an issue with\nauto-recovery of Knowledge Base setup. \\r\\n\\r\\nWhen the KB setup was\ninitialized on an undersized cluster, the model\\r\\nfailed to deploy\ncorrectly. This resulted in the KB ending up in a\\r\\nbroken state,\nrepeatedly displaying the Setup KB\nbutton.\\r\\n\\r\\n---------\\r\\n\\r\\nCo-authored-by: kibanamachine\n<42973632+kibanamachine@users.noreply.github.com>\",\"sha\":\"1cb56d7196cf60b03cb539f32f6a466a17141e02\"}},{\"branch\":\"8.17\",\"label\":\"v8.17.0\",\"branchLabelMappingKey\":\"^v(\\\\d+).(\\\\d+).\\\\d+$\",\"isSourceBranch\":false,\"state\":\"NOT_CREATED\"},{\"branch\":\"8.x\",\"label\":\"v8.18.0\",\"branchLabelMappingKey\":\"^v8.18.0$\",\"isSourceBranch\":false,\"state\":\"NOT_CREATED\"},{\"branch\":\"8.16\",\"label\":\"v8.16.2\",\"branchLabelMappingKey\":\"^v(\\\\d+).(\\\\d+).\\\\d+$\",\"isSourceBranch\":false,\"state\":\"NOT_CREATED\"}]}]\nBACKPORT-->\n\nCo-authored-by: Patryk Kopyciński <contact@patrykkopycinski.com>"}},{"branch":"8.16","label":"v8.16.2","labelRegex":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"}]}] BACKPORT--> --------- Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
1 parent 7e0ea54 commit 0c0cb2a

1 file changed

Lines changed: 37 additions & 17 deletions

File tree

  • x-pack/plugins/elastic_assistant/server/ai_assistant_data_clients/knowledge_base

x-pack/plugins/elastic_assistant/server/ai_assistant_data_clients/knowledge_base/index.ts

Lines changed: 37 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -225,27 +225,47 @@ export class AIAssistantKnowledgeBaseDataClient extends AIAssistantDataClient {
225225
public createInferenceEndpoint = async () => {
226226
const elserId = await this.options.getElserId();
227227
this.options.logger.debug(`Deploying ELSER model '${elserId}'...`);
228-
try {
229-
const esClient = await this.options.elasticsearchClientPromise;
230-
if (this.isV2KnowledgeBaseEnabled) {
231-
await esClient.inference.put({
232-
task_type: 'sparse_embedding',
228+
const esClient = await this.options.elasticsearchClientPromise;
229+
230+
const inferenceEndpointExists = await this.isInferenceEndpointExists();
231+
232+
if (inferenceEndpointExists) {
233+
try {
234+
await esClient.inference.delete({
233235
inference_id: ASSISTANT_ELSER_INFERENCE_ID,
234-
inference_config: {
235-
service: 'elasticsearch',
236-
service_settings: {
237-
adaptive_allocations: {
238-
enabled: true,
239-
min_number_of_allocations: 0,
240-
max_number_of_allocations: 8,
241-
},
242-
num_threads: 1,
243-
model_id: elserId,
236+
// it's being used in the mapping so we need to force delete
237+
force: true,
238+
});
239+
this.options.logger.debug(
240+
`Deleted existing inference endpoint for ELSER model '${elserId}'`
241+
);
242+
} catch (error) {
243+
this.options.logger.error(
244+
`Error deleting inference endpoint for ELSER model '${elserId}':\n${error}`
245+
);
246+
}
247+
}
248+
249+
try {
250+
await esClient.inference.put({
251+
task_type: 'sparse_embedding',
252+
inference_id: ASSISTANT_ELSER_INFERENCE_ID,
253+
inference_config: {
254+
service: 'elasticsearch',
255+
service_settings: {
256+
adaptive_allocations: {
257+
enabled: true,
258+
min_number_of_allocations: 0,
259+
max_number_of_allocations: 8,
244260
},
245261
task_settings: {},
246262
},
247-
});
248-
}
263+
task_settings: {},
264+
},
265+
});
266+
267+
// await for the model to be deployed
268+
await this.isInferenceEndpointExists();
249269
} catch (error) {
250270
this.options.logger.error(
251271
`Error creating inference endpoint for ELSER model '${elserId}':\n${error}`

0 commit comments

Comments
 (0)