2020-01-22 00:14:06 +00:00
|
|
|
---
|
2020-02-07 22:14:58 +00:00
|
|
|
title: Create an InfluxDB template
|
2020-01-22 00:14:06 +00:00
|
|
|
description: >
|
2020-02-07 22:14:58 +00:00
|
|
|
Use the InfluxDB UI and the `influx pkg export` command to create InfluxDB templates.
|
2020-01-22 00:14:06 +00:00
|
|
|
menu:
|
|
|
|
v2_0:
|
2020-02-07 22:14:58 +00:00
|
|
|
parent: InfluxDB templates
|
2020-01-22 00:14:06 +00:00
|
|
|
name: Create a template
|
2020-02-07 22:14:58 +00:00
|
|
|
identifier: Create an InfluxDB template
|
2020-02-12 21:48:41 +00:00
|
|
|
weight: 102
|
2020-02-07 22:14:58 +00:00
|
|
|
v2.0/tags: [templates]
|
2020-01-22 00:14:06 +00:00
|
|
|
---
|
|
|
|
|
2020-02-06 22:07:53 +00:00
|
|
|
Use the InfluxDB user interface (UI) and the `influx pkg export` command to
|
2020-02-07 22:14:58 +00:00
|
|
|
create InfluxDB templates.
|
|
|
|
Add resources (buckets, Telegraf configurations, tasks, and more) in the InfluxDB
|
2020-02-14 23:18:34 +00:00
|
|
|
UI and export the resources as a template.
|
2020-02-06 22:07:53 +00:00
|
|
|
|
|
|
|
{{% note %}}
|
2020-02-07 22:14:58 +00:00
|
|
|
Templatable resources are scoped to a single organization, so the simplest way to create a
|
|
|
|
template is to create a new organization, build the template within the organization,
|
2020-02-14 23:18:34 +00:00
|
|
|
and then [export all resources](#export-all-resources) as a template.
|
2020-02-07 22:14:58 +00:00
|
|
|
|
|
|
|
**InfluxDB OSS** supports multiple organizations so you can create new organizations
|
|
|
|
for the sole purpose of building and maintaining a template.
|
2020-02-07 16:08:00 +00:00
|
|
|
In **InfluxDB Cloud**, your user account is an organization.
|
2020-02-07 22:14:58 +00:00
|
|
|
**We recommend using InfluxDB OSS to create InfluxDB templates.**
|
2020-02-06 22:07:53 +00:00
|
|
|
{{% /note %}}
|
|
|
|
|
|
|
|
**To create a template:**
|
|
|
|
|
|
|
|
1. [Start InfluxDB](/v2.0/get-started/).
|
|
|
|
2. [Create a new organization](/v2.0/organizations/create-org/).
|
2020-02-07 22:14:58 +00:00
|
|
|
3. In the InfluxDB UI add one or more of the following templatable resources:
|
2020-02-06 22:07:53 +00:00
|
|
|
|
|
|
|
- [buckets](/v2.0/organizations/buckets/create-bucket/)
|
|
|
|
- [checks](/v2.0/monitor-alert/checks/create/)
|
|
|
|
- [dashboards](/v2.0/visualize-data/dashboards/create-dashboard/)
|
|
|
|
- [dashboard variables](/v2.0/visualize-data/variables/create-variable/)
|
|
|
|
- [labels](/v2.0/visualize-data/labels/)
|
|
|
|
- [notification endpoints](/v2.0/monitor-alert/notification-endpoints/create/)
|
|
|
|
- [notification rules](/v2.0/monitor-alert/notification-rules/create/)
|
|
|
|
- [tasks](/v2.0/process-data/manage-tasks/create-task/)
|
|
|
|
- [Telegraf configurations](/v2.0/write-data/use-telegraf/)
|
|
|
|
|
2020-02-07 16:08:00 +00:00
|
|
|
4. Export the template _(see [below](#export-a-template))_.
|
2020-02-06 22:07:53 +00:00
|
|
|
|
2020-02-12 21:48:41 +00:00
|
|
|
{{% warn %}}
|
|
|
|
InfluxDB templates do not support the [table visualization type](/v2.0/visualize-data/visualization-types/table/).
|
2020-02-18 21:33:06 +00:00
|
|
|
Dashboard cells that use table visualization are not included in exported templates.
|
2020-02-12 21:48:41 +00:00
|
|
|
{{% /warn %}}
|
|
|
|
|
2020-02-06 22:07:53 +00:00
|
|
|
## Export a template
|
2020-02-07 22:14:58 +00:00
|
|
|
Do one of the following to export a template:
|
2020-02-06 22:07:53 +00:00
|
|
|
|
2020-02-07 16:08:00 +00:00
|
|
|
1. Export all resources in an organization _(recommended)_
|
|
|
|
2. Export specific resources in an organization
|
2020-02-06 22:07:53 +00:00
|
|
|
|
2020-02-07 16:08:00 +00:00
|
|
|
### Export all resources
|
2020-02-07 22:14:58 +00:00
|
|
|
To export all templatable resources within an organization to a template manifest,
|
|
|
|
use the `influx pkg export all` command.
|
2020-02-07 16:08:00 +00:00
|
|
|
Provide the following:
|
|
|
|
|
|
|
|
- **Organization name** or **ID**
|
|
|
|
- **Authentication token** with read access to the organization
|
2020-02-07 22:14:58 +00:00
|
|
|
- **Destination path and filename** for the template manifest.
|
|
|
|
The filename extension determines the template format—both **YAML** (`.yml`) and
|
|
|
|
**JSON** (`.json`) are supported.
|
2020-02-07 16:08:00 +00:00
|
|
|
|
2020-02-07 22:14:58 +00:00
|
|
|
###### Export all resources to a template
|
2020-02-07 16:08:00 +00:00
|
|
|
```sh
|
|
|
|
# Syntax
|
2020-02-12 21:22:56 +00:00
|
|
|
influx pkg export all -o <org-name> -f <file-path> -t <token>
|
2020-02-07 16:08:00 +00:00
|
|
|
|
|
|
|
# Example
|
|
|
|
influx pkg export all \
|
|
|
|
-o my-org \
|
|
|
|
-f ~/templates/awesome-template.yml \
|
|
|
|
-t $INFLUX_TOKEN
|
|
|
|
```
|
|
|
|
|
2020-03-09 21:28:42 +00:00
|
|
|
#### Export resources filtered by labelName or resourceKind
|
2020-03-10 14:24:08 +00:00
|
|
|
The `influx pkg export all` command has an optional `--filter` flag that exports
|
|
|
|
only resources that match specified label names or resource kinds.
|
2020-03-09 22:20:37 +00:00
|
|
|
Provide multiple filters for both `labelName` and `resourceKind`
|
|
|
|
|
|
|
|
###### Export only dashboards and buckets with specific labels
|
|
|
|
The following example exports resources that match this predicate logic:
|
|
|
|
|
|
|
|
```js
|
|
|
|
(resourceKind == "Bucket" or resourceKind == "Dashboard")
|
|
|
|
and
|
|
|
|
(labelName == "Example1" or labelName == "Example2")
|
|
|
|
```
|
2020-03-09 21:28:42 +00:00
|
|
|
|
|
|
|
```sh
|
|
|
|
influx pkg export all \
|
|
|
|
-o my-org \
|
|
|
|
-f ~/templates/awesome-template.yml \
|
|
|
|
-t $INFLUX_TOKEN \
|
|
|
|
--filter=resourceKind=Bucket \
|
2020-03-09 22:20:37 +00:00
|
|
|
--filter=resourceKind=Dashboard \
|
|
|
|
--filter=labelName=Example1 \
|
|
|
|
--filter=labelName=Example2
|
2020-03-09 21:28:42 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
|
2020-03-09 22:20:37 +00:00
|
|
|
|
|
|
|
|
2020-02-07 22:14:58 +00:00
|
|
|
For information about flags, see the
|
2020-02-07 16:08:00 +00:00
|
|
|
[`influx pkg export all` documentation](/v2.0/reference/cli/influx/pkg/export/all/).
|
2020-02-06 22:07:53 +00:00
|
|
|
|
|
|
|
### Export specific resources
|
2020-02-14 23:18:34 +00:00
|
|
|
To export specific resources within an organization to a template manifest,
|
2020-02-07 22:14:58 +00:00
|
|
|
use the `influx pkg export` with resource flags for each resource to include.
|
2020-02-07 16:08:00 +00:00
|
|
|
Provide the following:
|
|
|
|
|
|
|
|
- **Organization name** or **ID**
|
|
|
|
- **Authentication token** with read access to the organization
|
2020-02-14 23:18:34 +00:00
|
|
|
- **Destination path and filename** for the template manifest.
|
|
|
|
The filename extension determines the template format—both **YAML** (`.yml`) and
|
|
|
|
**JSON** (`.json`) are supported.
|
2020-02-07 16:08:00 +00:00
|
|
|
- **Resource flags** with corresponding lists of resource IDs to include in the template.
|
|
|
|
For information about what resource flags are available, see the
|
|
|
|
[`influx pkg export` documentation](/v2.0/reference/cli/influx/pkg/export/).
|
2020-02-06 22:07:53 +00:00
|
|
|
|
2020-02-07 22:14:58 +00:00
|
|
|
###### Export specific resources to a template
|
2020-02-07 16:08:00 +00:00
|
|
|
```sh
|
|
|
|
# Syntax
|
2020-02-12 21:22:56 +00:00
|
|
|
influx pkg export all -o <org-name> -f <file-path> -t <token> [resource-flags]
|
2020-02-06 22:07:53 +00:00
|
|
|
|
2020-02-07 16:08:00 +00:00
|
|
|
# Example
|
|
|
|
influx pkg export all \
|
|
|
|
-o my-org \
|
|
|
|
-f ~/templates/awesome-template.yml \
|
|
|
|
-t $INFLUX_TOKEN \
|
|
|
|
--buckets=00x000ooo0xx0xx,o0xx0xx00x000oo \
|
|
|
|
--dashboards=00000xX0x0X00x000 \
|
|
|
|
--telegraf-configs=00000x0x000X0x0X0
|
|
|
|
```
|
2020-02-12 21:48:41 +00:00
|
|
|
|
2020-02-18 23:33:13 +00:00
|
|
|
## Include user-definable resource names
|
2020-02-19 22:27:12 +00:00
|
|
|
After exporting a template manifest, replace resource names with **environment references**
|
|
|
|
to let users customize resource names when installing your template.
|
2020-02-18 23:33:13 +00:00
|
|
|
|
2020-02-19 22:37:41 +00:00
|
|
|
1. [Export a template](#export-a-template)
|
|
|
|
2. Select any of the following resource fields to update:
|
|
|
|
|
|
|
|
- `metadata.name`
|
|
|
|
- `associations[].name`
|
|
|
|
- `endpointName` _(unique to `NotificationRule` resources)_
|
|
|
|
|
|
|
|
3. Replace the resource field value with an `envRef` object with a `key` property
|
|
|
|
that reference the key of a key-value pair the user provides when installing the template.
|
|
|
|
During installation, the `envRef` object is replaced by the value of the
|
|
|
|
referenced key-value pair.
|
|
|
|
If the user does not provide the environment reference key-value pair, InfluxDB
|
|
|
|
uses the `key` string as the default value.
|
|
|
|
|
|
|
|
{{< code-tabs-wrapper >}}
|
|
|
|
{{% code-tabs %}}
|
2020-02-18 23:33:13 +00:00
|
|
|
[YAML](#)
|
|
|
|
[JSON](#)
|
2020-02-19 22:37:41 +00:00
|
|
|
{{% /code-tabs %}}
|
|
|
|
{{% code-tab-content %}}
|
2020-02-18 23:33:13 +00:00
|
|
|
```yml
|
|
|
|
apiVersion: influxdata.com/v2alpha1
|
|
|
|
kind: Bucket
|
|
|
|
metadata:
|
|
|
|
name:
|
|
|
|
envRef:
|
|
|
|
key: bucket-name-1
|
|
|
|
```
|
2020-02-19 22:37:41 +00:00
|
|
|
{{% /code-tab-content %}}
|
|
|
|
{{% code-tab-content %}}
|
2020-02-18 23:33:13 +00:00
|
|
|
```json
|
|
|
|
{
|
|
|
|
"apiVersion": "influxdata.com/v2alpha1",
|
|
|
|
"kind": "Bucket",
|
|
|
|
"metadata": {
|
|
|
|
"name": {
|
|
|
|
"envRef": {
|
|
|
|
"key": "bucket-name-1"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
2020-02-19 22:37:41 +00:00
|
|
|
{{% /code-tab-content %}}
|
|
|
|
{{< /code-tabs-wrapper >}}
|
2020-02-18 23:33:13 +00:00
|
|
|
|
2020-02-19 22:27:12 +00:00
|
|
|
Using the example above, users are prompted to provide a value for `bucket-name-1`
|
|
|
|
when [installing the template](/v2.0/influxdb-templates/use/#install-templates).
|
|
|
|
Users can also include the `--env-ref` flag with the appropriate key-value pair
|
|
|
|
when installing the template.
|
2020-02-18 23:33:13 +00:00
|
|
|
|
|
|
|
```sh
|
2020-02-19 22:27:12 +00:00
|
|
|
# Set bucket-name-1 to "myBucket"
|
2020-02-18 23:33:13 +00:00
|
|
|
influx pkg \
|
|
|
|
-f /path/to/template.yml \
|
|
|
|
--env-ref=bucket-name-1=myBucket
|
|
|
|
```
|
|
|
|
|
2020-02-19 22:27:12 +00:00
|
|
|
_If sharing your template, we recommend documenting what environment references
|
|
|
|
exist in the template and what keys to use to replace them._
|
|
|
|
|
2020-02-18 23:33:13 +00:00
|
|
|
{{% note %}}
|
2020-02-19 15:34:28 +00:00
|
|
|
#### Resource fields that support environment references
|
2020-02-18 23:33:13 +00:00
|
|
|
Only the following fields support environment references:
|
|
|
|
|
2020-02-19 22:37:41 +00:00
|
|
|
|
2020-02-18 23:33:13 +00:00
|
|
|
{{% /note %}}
|
|
|
|
|
2020-02-12 21:48:41 +00:00
|
|
|
## Share your InfluxDB templates
|
|
|
|
Share your InfluxDB templates with the entire InfluxData community.
|
|
|
|
**Contribute your template to the [InfluxDB Community Templates](https://github.com/influxdata/community-templates/)
|
|
|
|
repository on GitHub.**
|
|
|
|
|
|
|
|
<a class="btn" href="https://github.com/influxdata/community-templates/" target="\_blank">View InfluxDB Community Templates</a>
|