From 2a30cb153fc6a1edecf571ba125b2daac12e404b Mon Sep 17 00:00:00 2001 From: James Nugent Date: Fri, 10 Jul 2020 12:19:04 -0500 Subject: Add gcp.Meta function, equivalent to aws.EC2Meta This commit adds a new namespace and function: `gcp.Meta`, which can be used to look up values from the GCP Instance Metadata service. An example usage: ``` echo '{{ gcp.Meta "id" }}' | gomplate ``` This also supports paths, so usage like this works: ``` echo '{{ gcp.Meta "network-interfaces/0/ip" }}' | gomplate ``` --- docs/content/functions/gcp.md | 50 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 docs/content/functions/gcp.md (limited to 'docs/content') diff --git a/docs/content/functions/gcp.md b/docs/content/functions/gcp.md new file mode 100644 index 00000000..be5acb9d --- /dev/null +++ b/docs/content/functions/gcp.md @@ -0,0 +1,50 @@ +--- +title: gcp functions +menu: + main: + parent: functions +--- + +The functions in the `gcp` namespace interface with various Google Cloud Platform +APIs to make it possible for a template to render differently based on the GCP +environment and metadata. + +### Configuring GCP + +A number of environment variables can be used to control how gomplate communicates +with GCP APIs. + +| Environment Variable | Description | +| -------------------- | ----------- | +| `GCP_META_ENDPOINT` | _(Default `http://metadata.google.internal`)_ Sets the base address of the instance metadata service. | +| `GCP_TIMEOUT` | _(Default `500`)_ Adjusts timeout for API requests, in milliseconds. | + +## `gcp.Meta` + +Queries GCP [Instance Metadata](https://cloud.google.com/compute/docs/storing-retrieving-metadata) for information. + +For times when running outside GCP, or when the metadata API can't be reached, a `default` value can be provided. + +### Usage + +```go +gcp.Meta key [default] +``` + +### Arguments + +| name | description | +|------|-------------| +| `key` | _(required)_ the metadata key to query | +| `default` | _(optional)_ the default value | + +### Examples + +```console +$ echo '{{gcp.Meta "id"}}' | gomplate +1334999446930701104 +``` +```console +$ echo '{{gcp.Meta "network-interfaces/0/ip"}}' | gomplate +10.128.0.23 +``` -- cgit v1.2.3