diff --git a/docs/changelog/132764.yaml b/docs/changelog/132764.yaml new file mode 100644 index 0000000000000..4b2313b3f681e --- /dev/null +++ b/docs/changelog/132764.yaml @@ -0,0 +1,5 @@ +pr: 132764 +summary: Undeprecate metrics, logs, and synthetics legacy ILM policies +area: Indices APIs +type: enhancement +issues: [] diff --git a/x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/LegacyStackTemplateRegistry.java b/x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/LegacyStackTemplateRegistry.java index c89a8237d40b7..e8c29a2de445b 100644 --- a/x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/LegacyStackTemplateRegistry.java +++ b/x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/LegacyStackTemplateRegistry.java @@ -34,7 +34,6 @@ import static org.elasticsearch.xpack.stack.StackTemplateRegistry.STACK_TEMPLATES_ENABLED; -@Deprecated(since = "8.12.0", forRemoval = true) public class LegacyStackTemplateRegistry extends IndexTemplateRegistry { private static final Logger logger = LogManager.getLogger(LegacyStackTemplateRegistry.class); @@ -69,7 +68,6 @@ public class LegacyStackTemplateRegistry extends IndexTemplateRegistry { ////////////////////////////////////////////////////////// public static final String LOGS_MAPPINGS_COMPONENT_TEMPLATE_NAME = "logs-mappings"; public static final String LOGS_SETTINGS_COMPONENT_TEMPLATE_NAME = "logs-settings"; - public static final String LOGS_ILM_POLICY_NAME = "logs"; ////////////////////////////////////////////////////////// // Metrics components (for matching metric-*-* indices) @@ -77,14 +75,12 @@ public class LegacyStackTemplateRegistry extends IndexTemplateRegistry { public static final String METRICS_MAPPINGS_COMPONENT_TEMPLATE_NAME = "metrics-mappings"; public static final String METRICS_SETTINGS_COMPONENT_TEMPLATE_NAME = "metrics-settings"; public static final String METRICS_TSDB_SETTINGS_COMPONENT_TEMPLATE_NAME = "metrics-tsdb-settings"; - public static final String METRICS_ILM_POLICY_NAME = "metrics"; ////////////////////////////////////////////////////////// // Synthetics components (for matching synthetics-*-* indices) ////////////////////////////////////////////////////////// public static final String SYNTHETICS_MAPPINGS_COMPONENT_TEMPLATE_NAME = "synthetics-mappings"; public static final String SYNTHETICS_SETTINGS_COMPONENT_TEMPLATE_NAME = "synthetics-settings"; - public static final String SYNTHETICS_ILM_POLICY_NAME = "synthetics"; public LegacyStackTemplateRegistry( Settings nodeSettings, @@ -118,9 +114,6 @@ private void updateEnabledSetting(boolean newValue) { } private static final List LIFECYCLE_POLICY_CONFIGS = List.of( - new LifecyclePolicyConfig(LOGS_ILM_POLICY_NAME, "/logs@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES), - new LifecyclePolicyConfig(METRICS_ILM_POLICY_NAME, "/metrics@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES), - new LifecyclePolicyConfig(SYNTHETICS_ILM_POLICY_NAME, "/synthetics@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES), new LifecyclePolicyConfig(ILM_7_DAYS_POLICY_NAME, "/7-days@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES), new LifecyclePolicyConfig(ILM_30_DAYS_POLICY_NAME, "/30-days@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES), new LifecyclePolicyConfig(ILM_90_DAYS_POLICY_NAME, "/90-days@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES), diff --git a/x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/StackTemplateRegistry.java b/x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/StackTemplateRegistry.java index bd1178937b463..2837eb4bf2897 100644 --- a/x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/StackTemplateRegistry.java +++ b/x-pack/plugin/stack/src/main/java/org/elasticsearch/xpack/stack/StackTemplateRegistry.java @@ -73,6 +73,7 @@ public class StackTemplateRegistry extends IndexTemplateRegistry { ////////////////////////////////////////////////////////// public static final String LOGS_MAPPINGS_COMPONENT_TEMPLATE_NAME = "logs@mappings"; public static final String LOGS_SETTINGS_COMPONENT_TEMPLATE_NAME = "logs@settings"; + public static final String LEGACY_LOGS_ILM_POLICY_NAME = "logs"; public static final String LOGS_ILM_POLICY_NAME = "logs@lifecycle"; public static final String LOGS_INDEX_TEMPLATE_NAME = "logs"; @@ -82,6 +83,7 @@ public class StackTemplateRegistry extends IndexTemplateRegistry { public static final String METRICS_MAPPINGS_COMPONENT_TEMPLATE_NAME = "metrics@mappings"; public static final String METRICS_SETTINGS_COMPONENT_TEMPLATE_NAME = "metrics@settings"; public static final String METRICS_TSDB_SETTINGS_COMPONENT_TEMPLATE_NAME = "metrics@tsdb-settings"; + public static final String LEGACY_METRICS_ILM_POLICY_NAME = "metrics"; public static final String METRICS_ILM_POLICY_NAME = "metrics@lifecycle"; public static final String METRICS_INDEX_TEMPLATE_NAME = "metrics"; @@ -97,6 +99,7 @@ public class StackTemplateRegistry extends IndexTemplateRegistry { ////////////////////////////////////////////////////////// public static final String SYNTHETICS_MAPPINGS_COMPONENT_TEMPLATE_NAME = "synthetics@mappings"; public static final String SYNTHETICS_SETTINGS_COMPONENT_TEMPLATE_NAME = "synthetics@settings"; + public static final String LEGACY_SYNTHETICS_ILM_POLICY_NAME = "synthetics"; public static final String SYNTHETICS_ILM_POLICY_NAME = "synthetics@lifecycle"; public static final String SYNTHETICS_INDEX_TEMPLATE_NAME = "synthetics"; @@ -260,8 +263,11 @@ private void updateEnabledSetting(boolean newValue) { } private static final List LIFECYCLE_POLICY_CONFIGS = List.of( + new LifecyclePolicyConfig(LEGACY_LOGS_ILM_POLICY_NAME, "/logs@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES), new LifecyclePolicyConfig(LOGS_ILM_POLICY_NAME, "/logs@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES), + new LifecyclePolicyConfig(LEGACY_METRICS_ILM_POLICY_NAME, "/metrics@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES), new LifecyclePolicyConfig(METRICS_ILM_POLICY_NAME, "/metrics@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES), + new LifecyclePolicyConfig(LEGACY_SYNTHETICS_ILM_POLICY_NAME, "/synthetics@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES), new LifecyclePolicyConfig(SYNTHETICS_ILM_POLICY_NAME, "/synthetics@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES), new LifecyclePolicyConfig(TRACES_ILM_POLICY_NAME, "/traces@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES), new LifecyclePolicyConfig(ILM_7_DAYS_POLICY_NAME, "/7-days@lifecycle.json", ADDITIONAL_TEMPLATE_VARIABLES), diff --git a/x-pack/plugin/stack/src/test/java/org/elasticsearch/xpack/stack/StackTemplateRegistryTests.java b/x-pack/plugin/stack/src/test/java/org/elasticsearch/xpack/stack/StackTemplateRegistryTests.java index 970ba67e25667..be2d50f43d818 100644 --- a/x-pack/plugin/stack/src/test/java/org/elasticsearch/xpack/stack/StackTemplateRegistryTests.java +++ b/x-pack/plugin/stack/src/test/java/org/elasticsearch/xpack/stack/StackTemplateRegistryTests.java @@ -131,7 +131,8 @@ public void testDisabledStillAddsComponentTemplatesAndIlmPolicies() { assertThat( // We have a naming convention that internal ILM policies contain `@`. See also put-lifecycle.asciidoc. disabledRegistry.getLifecyclePolicies().stream().filter(p -> p.getName().contains("@") == false).collect(Collectors.toSet()), - empty() + // 3 duplicate legacy ILM policies do not follow this convention: metrics, logs, synthetics + hasSize(3) ); } @@ -173,8 +174,11 @@ public void testThatNonExistingPoliciesAreAddedImmediately() throws Exception { assertThat( putRequest.getPolicy().getName(), anyOf( + equalTo(StackTemplateRegistry.LEGACY_LOGS_ILM_POLICY_NAME), equalTo(StackTemplateRegistry.LOGS_ILM_POLICY_NAME), + equalTo(StackTemplateRegistry.LEGACY_METRICS_ILM_POLICY_NAME), equalTo(StackTemplateRegistry.METRICS_ILM_POLICY_NAME), + equalTo(StackTemplateRegistry.LEGACY_SYNTHETICS_ILM_POLICY_NAME), equalTo(StackTemplateRegistry.SYNTHETICS_ILM_POLICY_NAME), equalTo(StackTemplateRegistry.TRACES_ILM_POLICY_NAME), equalTo(StackTemplateRegistry.ILM_7_DAYS_POLICY_NAME), @@ -200,7 +204,7 @@ public void testThatNonExistingPoliciesAreAddedImmediately() throws Exception { ClusterChangedEvent event = createClusterChangedEvent(Collections.emptyMap(), nodes); registry.clusterChanged(event); - assertBusy(() -> assertThat(calledTimes.get(), equalTo(9))); + assertBusy(() -> assertThat(calledTimes.get(), equalTo(12))); } public void testPolicyAlreadyExists() { @@ -209,7 +213,7 @@ public void testPolicyAlreadyExists() { Map policyMap = new HashMap<>(); List policies = registry.getLifecyclePolicies(); - assertThat(policies, hasSize(9)); + assertThat(policies, hasSize(12)); policies.forEach(p -> policyMap.put(p.getName(), p)); client.setVerifier((action, request, listener) -> { @@ -280,7 +284,7 @@ public void testPolicyAlreadyExistsButDiffers() throws IOException { Map policyMap = new HashMap<>(); String policyStr = "{\"phases\":{\"delete\":{\"min_age\":\"1m\",\"actions\":{\"delete\":{}}}}}"; List policies = registry.getLifecyclePolicies(); - assertThat(policies, hasSize(9)); + assertThat(policies, hasSize(12)); policies.forEach(p -> policyMap.put(p.getName(), p)); client.setVerifier((action, request, listener) -> {