Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add index template v2 and component template support to Index Management app #64771

Closed
matt-davis-elastic opened this issue Apr 29, 2020 · 4 comments
Labels
Meta Team:Kibana Management Dev Tools, Index Management, Upgrade Assistant, ILM, Ingest Node Pipelines, and more

Comments

@matt-davis-elastic
Copy link

Elasticsearch is adding a new version of index templates to support data streams. There are a few changes between v1 and v2.

What are index templates?

elastic/elasticsearch#53101

What is different between V1 and V2?

URL changes - The API endpoint for index templates v2 is /_index_template.

There is a new simulate index template API located at /_index_template/_simulate_index/{index}

With the addition of component templates, there is a new endpoint located at /_component_template

JSON Structure changes - There is a new template JSON object which contains the settings, mappings, and aliases objects.

There are 2 new optional parameters priority and composed_of.
Of all the templates that match the index pattern, the one with the highest priority will be applied.

The composed_of setting is a string array with the names of component templates that will be applied.

Component templates JSON will have 3 fields that follow the same format as in the index template. The three fields are template, version, and _meta.

@matt-davis-elastic matt-davis-elastic added Meta Team:Kibana Management Dev Tools, Index Management, Upgrade Assistant, ILM, Ingest Node Pipelines, and more labels Apr 29, 2020
@elasticmachine
Copy link
Contributor

Pinging @elastic/es-ui (Team:Elasticsearch UI)

@matt-davis-elastic
Copy link
Author

@jethr0null and @cjcenizal let me know if you need any more details.

@cjcenizal cjcenizal changed the title Index Template UI should support Index Template v2 Add index template v2 and component template support to Index Management app May 5, 2020
@cjcenizal
Copy link
Contributor

Proposal

Major changes

  • We'll create a separate "Index Templates (v2)" tab instead of commingling v1 and v2 index templates within a single tab.
  • We'll also add a new "Component Templates" tab.

"Index Templates" tab

image

Drive users to v2. We'll add a callout that notes that these index templates will be deprecated in the future and broadcast the advantages of the new v2 index templates.

🤞 Future item: support v2 migrations. At some point in the future we can surface a "Migrate to v2" action in this table to make it easier for users to move their existing index templates over.

"Index Templates (v2)" tab

image

CRUD basics. Users will be able to search and filter a paginated table of their index templates (v2). Clicking the name of an index template will open a detail panel that surfaces the index template's underlying details. The table will list columns for "Priority" (not shown) and "Component templates".

Viewing component templates in detail panel. The index template detail panel will contain a list of the component templates that compose the index template. These will be links which will open up the "Component templates" tab, filter the table to show the clicked component template, and open it in the detail panel.

Viewing component templates in table. The user will be able to expand an index template row to list all of the component templates that compose it. These component template rows will have checkmarks to indicate if they specify mappings, settings, or aliases. The user can click a component template a detail panel for it without leaving the "Index Templates (v2)" tab.

Note that this would imply the URL path becomes something like index_management/index_templates_v2/<template>/<component>.

This feature is at risk due to time constraints and will be the first thing we cut.

Delete, edit, and clone actions. Users will be able to select and delete/edit /clone index templates.

"Index Templates (v2)" wizard

image

Based off existing wizard. This wizard will be the same as the existing Index Template wizard, except it will support the additional configuration options.

Data stream option. We'll add an option to allow the user to specify that this index template should generate a data stream when it gets applied to ingested data. When this option is enabled, the user will have to define the name of the timestamp field. We'll add copy to explain the purpose of this option and data streams, and link out to docs.

Component templates option. This will be a new step in the wizard that lets the user select component templates from a table. Users will be able to click a component template in this table to preview it within a detail panel so they can review its configuration before deciding to select it or not.

Review composed configuration. During the review step, we'll show the user the composed result of all of their component templates, mappings, settings, and aliases.

This is blocked by this requested ES API: elastic/elasticsearch#56255.

"Component Templates" tab and wizard

Same as index templates (v1). All of this functionality is essentially the same functionality that exists in the "Index Templates" tab today. The only differences are a few small changes to the configuration options of component templates.

Clone action. Users will be able to quickly duplicate component templates. This will enable workflows that involve creating component templates from a common base.

Viewing dependent index templates. We'll add an "In use" column to show the user if a component template is in use by an index template. This will make it easy for users to remove unused component templates. We can also block the deletion of component templates that are in use.

In the detail panel, we'll show the user a list of index templates that use the component template. Each one will be a link that will open the "Index Templates (v2)" tab, apply a filter to the table to show only the clicked index template, and open it in the detail panel.

This is blocked by this requested ES API change: elastic/elasticsearch#56256.

@cjcenizal
Copy link
Contributor

Addressed by #67282 and #68031

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Meta Team:Kibana Management Dev Tools, Index Management, Upgrade Assistant, ILM, Ingest Node Pipelines, and more
Projects
None yet
Development

No branches or pull requests

3 participants