@@ -39,6 +39,10 @@ public class StackTemplateRegistry extends IndexTemplateRegistry {
3939 // to built-in templates.
4040 public static final int REGISTRY_VERSION = 19 ;
4141
42+ // The computed checksum of all templates and components that are registered in this registry.
43+ // This is used by a test to ensure that REGISTRY_VERSION is updated when any of the components change.
44+ static final String COMPUTED_CHECKSUM = "228d8ef7" ;
45+
4246 public static final String TEMPLATE_VERSION_VARIABLE = "xpack.stack.template.version" ;
4347 public static final Setting <Boolean > STACK_TEMPLATES_ENABLED = Setting .boolSetting (
4448 "stack.templates.enabled" ,
@@ -128,7 +132,21 @@ public StackTemplateRegistry(
128132
129133 private Map <String , ComponentTemplate > loadComponentTemplateConfigs () {
130134 final Map <String , ComponentTemplate > componentTemplates = new HashMap <>();
131- for (IndexTemplateConfig config : List .of (
135+ for (IndexTemplateConfig config : getComponentTemplateConfigsAsConfigs ()) {
136+ try {
137+ componentTemplates .put (
138+ config .getTemplateName (),
139+ ComponentTemplate .parse (JsonXContent .jsonXContent .createParser (XContentParserConfiguration .EMPTY , config .loadBytes ()))
140+ );
141+ } catch (IOException e ) {
142+ throw new AssertionError (e );
143+ }
144+ }
145+ return Map .copyOf (componentTemplates );
146+ }
147+
148+ static List <IndexTemplateConfig > getComponentTemplateConfigsAsConfigs () {
149+ return List .of (
132150 new IndexTemplateConfig (
133151 DATA_STREAMS_MAPPINGS_COMPONENT_TEMPLATE_NAME ,
134152@@ -227,17 +245,7 @@ private Map<String, ComponentTemplate> loadComponentTemplateConfigs() {
227245 TEMPLATE_VERSION_VARIABLE ,
228246 ADDITIONAL_TEMPLATE_VARIABLES
229247 )
230- )) {
231- try {
232- componentTemplates .put (
233- config .getTemplateName (),
234- ComponentTemplate .parse (JsonXContent .jsonXContent .createParser (XContentParserConfiguration .EMPTY , config .loadBytes ()))
235- );
236- } catch (IOException e ) {
237- throw new AssertionError (e );
238- }
239- }
240- return Map .copyOf (componentTemplates );
248+ );
241249 }
242250
243251 @ Override
@@ -259,7 +267,7 @@ private void updateEnabledSetting(boolean newValue) {
259267 }
260268 }
261269
262- private static final List <LifecyclePolicyConfig > LIFECYCLE_POLICY_CONFIGS = List .of (
270+ static final List <LifecyclePolicyConfig > LIFECYCLE_POLICY_CONFIGS = List .of (
263271 new LifecyclePolicyConfig (
LOGS_ILM_POLICY_NAME ,
"/[email protected] " ,
ADDITIONAL_TEMPLATE_VARIABLES ),
264272 new LifecyclePolicyConfig (
METRICS_ILM_POLICY_NAME ,
"/[email protected] " ,
ADDITIONAL_TEMPLATE_VARIABLES ),
265273 new LifecyclePolicyConfig (
SYNTHETICS_ILM_POLICY_NAME ,
"/[email protected] " ,
ADDITIONAL_TEMPLATE_VARIABLES ),
@@ -287,43 +295,49 @@ protected Map<String, ComponentTemplate> getComponentTemplateConfigs() {
287295 }
288296
289297 private static final Map <String , ComposableIndexTemplate > COMPOSABLE_INDEX_TEMPLATE_CONFIGS = parseComposableTemplates (
290- new IndexTemplateConfig (
291- LOGS_INDEX_TEMPLATE_NAME ,
292- 293- REGISTRY_VERSION ,
294- TEMPLATE_VERSION_VARIABLE ,
295- ADDITIONAL_TEMPLATE_VARIABLES
296- ),
297- new IndexTemplateConfig (
298- METRICS_INDEX_TEMPLATE_NAME ,
299- 300- REGISTRY_VERSION ,
301- TEMPLATE_VERSION_VARIABLE ,
302- ADDITIONAL_TEMPLATE_VARIABLES
303- ),
304- new IndexTemplateConfig (
305- SYNTHETICS_INDEX_TEMPLATE_NAME ,
306- 307- REGISTRY_VERSION ,
308- TEMPLATE_VERSION_VARIABLE ,
309- ADDITIONAL_TEMPLATE_VARIABLES
310- ),
311- new IndexTemplateConfig (
312- AGENTLESS_INDEX_TEMPLATE_NAME ,
313- 314- REGISTRY_VERSION ,
315- TEMPLATE_VERSION_VARIABLE ,
316- ADDITIONAL_TEMPLATE_VARIABLES
317- ),
318- new IndexTemplateConfig (
319- KIBANA_REPORTING_INDEX_TEMPLATE_NAME ,
320- 321- REGISTRY_VERSION ,
322- TEMPLATE_VERSION_VARIABLE ,
323- ADDITIONAL_TEMPLATE_VARIABLES
324- )
298+ getComposableTemplateConfigsAsConfigs ().toArray (new IndexTemplateConfig [0 ])
325299 );
326300
301+ static List <IndexTemplateConfig > getComposableTemplateConfigsAsConfigs () {
302+ return List .of (
303+ new IndexTemplateConfig (
304+ LOGS_INDEX_TEMPLATE_NAME ,
305+ 306+ REGISTRY_VERSION ,
307+ TEMPLATE_VERSION_VARIABLE ,
308+ ADDITIONAL_TEMPLATE_VARIABLES
309+ ),
310+ new IndexTemplateConfig (
311+ METRICS_INDEX_TEMPLATE_NAME ,
312+ 313+ REGISTRY_VERSION ,
314+ TEMPLATE_VERSION_VARIABLE ,
315+ ADDITIONAL_TEMPLATE_VARIABLES
316+ ),
317+ new IndexTemplateConfig (
318+ SYNTHETICS_INDEX_TEMPLATE_NAME ,
319+ 320+ REGISTRY_VERSION ,
321+ TEMPLATE_VERSION_VARIABLE ,
322+ ADDITIONAL_TEMPLATE_VARIABLES
323+ ),
324+ new IndexTemplateConfig (
325+ AGENTLESS_INDEX_TEMPLATE_NAME ,
326+ 327+ REGISTRY_VERSION ,
328+ TEMPLATE_VERSION_VARIABLE ,
329+ ADDITIONAL_TEMPLATE_VARIABLES
330+ ),
331+ new IndexTemplateConfig (
332+ KIBANA_REPORTING_INDEX_TEMPLATE_NAME ,
333+ 334+ REGISTRY_VERSION ,
335+ TEMPLATE_VERSION_VARIABLE ,
336+ ADDITIONAL_TEMPLATE_VARIABLES
337+ )
338+ );
339+ }
340+
327341 @ Override
328342 protected Map <String , ComposableIndexTemplate > getComposableTemplateConfigs () {
329343 if (stackTemplateEnabled ) {
@@ -333,7 +347,7 @@ protected Map<String, ComposableIndexTemplate> getComposableTemplateConfigs() {
333347 }
334348 }
335349
336- private static final List <IngestPipelineConfig > INGEST_PIPELINE_CONFIGS = List .of (
350+ static final List <IngestPipelineConfig > INGEST_PIPELINE_CONFIGS = List .of (
337351 new JsonIngestPipelineConfig (
338352 "logs@json-pipeline" ,
339353
0 commit comments