Skip to content

Commit

Permalink
[UA] Ensure that old indices are detected for reindexing (elastic#203082
Browse files Browse the repository at this point in the history
)

## Summary

We need to handle the following response shape from `GET
_migration/deprecations`

```jsonc
    "myindex": [
      {
        "level": "critical",
        "message": "Old index with a compatibility version < 8.0", // specifically this message
        "url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/breaking-changes-9.0.html",
        "details": "This index has version: 7.17.25",
        "resolve_during_rolling_upgrade": false
      }
    ]
```

<img width="1142" alt="Screenshot 2024-12-05 at 12 44 59"
src="https://github.com/user-attachments/assets/723e19ab-dd9d-4b6a-bcda-26a5c8bffa0b">


## To reviewers

These changes were developed/tested on `8.x` and must be backported.

Related
* elastic#202669
* elastic/elasticsearch#118062
  • Loading branch information
jloleysens authored Dec 5, 2024
1 parent b8a4101 commit 3579425
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,15 @@
"details": "[[type: tweet, field: liked]]",
"resolve_during_rolling_upgrade": false
}
],
"myindex": [
{
"level": "critical",
"message": "Old index with a compatibility version < 8.0",
"url": "https://www.elastic.co/guide/en/elasticsearch/reference/master/breaking-changes-9.0.html",
"details": "This index has version: 7.17.25",
"resolve_during_rolling_upgrade": false
}
]
},
"data_streams": {
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,12 @@ type EsMetadata = Actions & {
[key: string]: string;
};

// TODO(jloleysens): Replace these regexes once this issue is addressed https://github.com/elastic/elasticsearch/issues/118062
const ES_INDEX_MESSAGES_REQIURING_REINDEX = [
/Index created before/,
/index with a compatibility version \</,
];

export const getCorrectiveAction = (
message: string,
metadata: EsMetadata,
Expand All @@ -31,7 +37,9 @@ export const getCorrectiveAction = (
const clusterSettingDeprecation = metadata?.actions?.find(
(action) => action.action_type === 'remove_settings' && typeof indexName === 'undefined'
);
const requiresReindexAction = /Index created before/.test(message);
const requiresReindexAction = ES_INDEX_MESSAGES_REQIURING_REINDEX.some((regexp) =>
regexp.test(message)
);
const requiresIndexSettingsAction = Boolean(indexSettingDeprecation);
const requiresClusterSettingsAction = Boolean(clusterSettingDeprecation);
const requiresMlAction = /[Mm]odel snapshot/.test(message);
Expand Down

0 comments on commit 3579425

Please sign in to comment.