Feature migration APIs

Feature migration APIs

New API reference

For the most up-to-date API details, refer to Migration APIs.

These APIs are designed for indirect use by Kibana’s Upgrade Assistant. We strongly recommend you use the Upgrade Assistant to upgrade from 7.17 to 8.17.0. For upgrade instructions, refer to Upgrading to Elastic 8.17.0.

Version upgrades sometimes require changes to how features store configuration information and data in system indices. The feature migration APIs enable you to see what features require changes, initiate the automatic migration process, and check migration status.

Some functionality might be temporarily unavailable during the migration process.

Request

GET /_migration/system_features

POST /_migration/system_features

Prerequisites

  • If the Elasticsearch security features are enabled, you must have the manage cluster privilege to use this API.

Description

Submit a GET request to the _migration/system_features endpoint to see what features need to be migrated and the status of any migrations that are in progress.

Submit a POST request to the endpoint to start the migration process.

Examples

When you submit a GET request to the _migration/system_features endpoint, the response indicates the status of any features that need to be migrated.

  1. resp = client.migration.get_feature_upgrade_status()
  2. print(resp)
  1. response = client.migration.get_feature_upgrade_status
  2. puts response
  1. const response = await client.migration.getFeatureUpgradeStatus();
  2. console.log(response);
  1. GET /_migration/system_features

Example response:

  1. {
  2. "features" : [
  3. {
  4. "feature_name" : "async_search",
  5. "minimum_index_version" : "8100099",
  6. "migration_status" : "NO_MIGRATION_NEEDED",
  7. "indices" : [ ]
  8. },
  9. {
  10. "feature_name" : "enrich",
  11. "minimum_index_version" : "8100099",
  12. "migration_status" : "NO_MIGRATION_NEEDED",
  13. "indices" : [ ]
  14. },
  15. {
  16. "feature_name" : "ent_search",
  17. "minimum_index_version" : "8100099",
  18. "migration_status" : "NO_MIGRATION_NEEDED",
  19. "indices" : [ ]
  20. },
  21. {
  22. "feature_name" : "fleet",
  23. "minimum_index_version" : "8100099",
  24. "migration_status" : "NO_MIGRATION_NEEDED",
  25. "indices" : [ ]
  26. },
  27. {
  28. "feature_name" : "geoip",
  29. "minimum_index_version" : "8100099",
  30. "migration_status" : "NO_MIGRATION_NEEDED",
  31. "indices" : [ ]
  32. },
  33. {
  34. "feature_name" : "kibana",
  35. "minimum_index_version" : "8100099",
  36. "migration_status" : "NO_MIGRATION_NEEDED",
  37. "indices" : [ ]
  38. },
  39. {
  40. "feature_name" : "logstash_management",
  41. "minimum_index_version" : "8100099",
  42. "migration_status" : "NO_MIGRATION_NEEDED",
  43. "indices" : [ ]
  44. },
  45. {
  46. "feature_name" : "machine_learning",
  47. "minimum_index_version" : "8100099",
  48. "migration_status" : "NO_MIGRATION_NEEDED",
  49. "indices" : [ ]
  50. },
  51. {
  52. "feature_name" : "searchable_snapshots",
  53. "minimum_index_version" : "8100099",
  54. "migration_status" : "NO_MIGRATION_NEEDED",
  55. "indices" : [ ]
  56. },
  57. {
  58. "feature_name" : "security",
  59. "minimum_index_version" : "8100099",
  60. "migration_status" : "NO_MIGRATION_NEEDED",
  61. "indices" : [ ]
  62. },
  63. {
  64. "feature_name" : "synonyms",
  65. "minimum_index_version" : "8100099",
  66. "migration_status" : "NO_MIGRATION_NEEDED",
  67. "indices" : [ ]
  68. },
  69. {
  70. "feature_name" : "tasks",
  71. "minimum_index_version" : "8100099",
  72. "migration_status" : "NO_MIGRATION_NEEDED",
  73. "indices" : [ ]
  74. },
  75. {
  76. "feature_name" : "transform",
  77. "minimum_index_version" : "8100099",
  78. "migration_status" : "NO_MIGRATION_NEEDED",
  79. "indices" : [ ]
  80. },
  81. {
  82. "feature_name" : "watcher",
  83. "minimum_index_version" : "8100099",
  84. "migration_status" : "NO_MIGRATION_NEEDED",
  85. "indices" : [ ]
  86. }
  87. ],
  88. "migration_status" : "NO_MIGRATION_NEEDED"
  89. }

When you submit a POST request to the _migration/system_features endpoint to start the migration process, the response indicates what features will be migrated.

  1. resp = client.migration.post_feature_upgrade()
  2. print(resp)
  1. response = client.migration.post_feature_upgrade
  2. puts response
  1. const response = await client.migration.postFeatureUpgrade();
  2. console.log(response);
  1. POST /_migration/system_features

Example response:

  1. {
  2. "accepted" : true,
  3. "features" : [
  4. {
  5. "feature_name" : "security"
  6. }
  7. ]
  8. }

Elasticsearch security will be migrated before the cluster is upgraded.

Subsequent GET requests will return the status of the migration process.