Create an InfluxDB template
Use the InfluxDB user interface (UI) and the influx export
command to
create InfluxDB templates.
Add resources (buckets, Telegraf configurations, tasks, and more) in the InfluxDB
UI and export the resources as a template.
InfluxDB OSS for creating templates
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, and then export all resources as a template.
InfluxDB OSS supports multiple organizations so you can create new organizations for the sole purpose of building and maintaining a template. In InfluxDB Cloud, your user account is an organization. We recommend using InfluxDB OSS to create InfluxDB templates.
Export a template
Do one of the following to export a template:
- Export all resources in an organization
- Export specific resources in an organization
- Export a stack and its associated resources
Export all resources
To export all templatable resources within an organization to a template manifest,
use the influx export all
command.
Provide the following:
- Organization name or ID
- API token with read access to the organization
- Destination path and filename for the template manifest.
The filename extension determines the template format—both YAML (
.yml
) and JSON (.json
) are supported.
Export all resources to a template
# Syntax
influx export all -o <INFLUX_ORG> -f <FILE_PATH> -t <INFLUX_TOKEN>
# Example
influx export all \
-o my-org \
-f ~/templates/awesome-template.yml \
-t $INFLUX_TOKEN
Export resources filtered by labelName or resourceKind
The influx export all
command has an optional --filter
flag that exports
only resources that match specified label names or resource kinds.
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:
(resourceKind == "Bucket" or resourceKind == "Dashboard")
and
(labelName == "Example1" or labelName == "Example2")
influx export all \
-o my-org \
-f ~/templates/awesome-template.yml \
-t $INFLUX_TOKEN \
--filter=resourceKind=Bucket \
--filter=resourceKind=Dashboard \
--filter=labelName=Example1 \
--filter=labelName=Example2
For information about flags, see the
influx export all
documentation.
Export specific resources
To export specific resources within an organization to a template manifest,
use the influx export
with resource flags for each resource to include.
Provide the following:
- Organization name or ID
- API token with read access to the organization
- Destination path and filename for the template manifest.
The filename extension determines the template format—both YAML (
.yml
) and JSON (.json
) are supported. - Resource flags with corresponding lists of resource IDs to include in the template.
For information about what resource flags are available, see the
influx export
documentation.
Export specific resources to a template
# Syntax
influx export all -o <INFLUX_ORG> -f <FILE_PATH> -t <INFLUX_TOKEN> [resource-flags]
# Example
influx export all \
-o my-org \
-f ~/templates/awesome-template.yml \
-t $INFLUX_TOKEN \
--buckets=00x000ooo0xx0xx,o0xx0xx00x000oo \
--dashboards=00000xX0x0X00x000 \
--telegraf-configs=00000x0x000X0x0X0
Export a stack
To export a stack and all its associated resources as a template, use the
influx export stack
command.
Provide the following:
- Organization name or ID
- API token with read access to the organization
- Destination path and filename for the template manifest.
The filename extension determines the template format—both YAML (
.yml
) and JSON (.json
) are supported. - Stack ID
Export a stack as a template
# Syntax
influx export stack \
-o <INFLUX_ORG> \
-t <INFLUX_TOKEN> \
-f <FILE_PATH> \
<STACK_ID>
# Example
influx export stack \
-o my-org \
-t mYSuP3RS3CreTt0K3n
-f ~/templates/awesome-template.yml \
05dbb791a4324000
Include user-definable resource names
After exporting a template manifest, replace resource names with environment references to let users customize resource names when installing your template.
-
Select any of the following resource fields to update:
metadata.name
associations[].name
endpointName
(unique toNotificationRule
resources)
-
Replace the resource field value with an
envRef
object with akey
property that reference the key of a key-value pair the user provides when installing the template. During installation, theenvRef
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 thekey
string as the default value.
Using the example above, users are prompted to provide a value for bucket-name-1
when applying the template.
Users can also include the --env-ref
flag with the appropriate key-value pair
when installing the template.
# Set bucket-name-1 to "myBucket"
influx apply \
-f /path/to/template.yml \
--env-ref=bucket-name-1=myBucket
If sharing your template, we recommend documenting what environment references exist in the template and what keys to use to replace them.
Resource fields that support environment references
Only the following fields support environment references:
metadata.name
spec.endpointName
spec.associations.name
Share your InfluxDB templates
Share your InfluxDB templates with the entire InfluxData community. Contribute your template to the InfluxDB Community Templates repository on GitHub.
View InfluxDB Community Templates
Was this page helpful?
Thank you for your feedback!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for InfluxDB and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.