blob: 270bfd8ff972d87f392b59a3f1050215c74df7f4 [file] [log] [blame]
---
subcategory: "Runtime Configurator"
description: |-
Manages a RuntimeConfig variable in Google Cloud.
---
# google\_runtimeconfig\_variable
Manages a RuntimeConfig variable in Google Cloud. For more information, see the
[official documentation](https://cloud.google.com/deployment-manager/runtime-configurator/),
or the
[JSON API](https://cloud.google.com/deployment-manager/runtime-configurator/reference/rest/).
~> **Warning:** This resource is in beta, and should be used with the terraform-provider-google-beta provider.
See [Provider Versions](https://terraform.io/docs/providers/google/guides/provider_versions.html) for more details on beta resources.
## Example Usage
Example creating a RuntimeConfig variable.
```hcl
resource "google_runtimeconfig_config" "my-runtime-config" {
name = "my-service-runtime-config"
description = "Runtime configuration values for my service"
}
resource "google_runtimeconfig_variable" "environment" {
parent = google_runtimeconfig_config.my-runtime-config.name
name = "prod-variables/hostname"
text = "example.com"
}
```
You can also encode binary content using the `value` argument instead. The
value must be base64 encoded.
Example of using the `value` argument.
```hcl
resource "google_runtimeconfig_config" "my-runtime-config" {
name = "my-service-runtime-config"
description = "Runtime configuration values for my service"
}
resource "google_runtimeconfig_variable" "my-secret" {
parent = google_runtimeconfig_config.my-runtime-config.name
name = "secret"
value = filebase64("my-encrypted-secret.dat")
}
```
## Argument Reference
The following arguments are supported:
* `name` - (Required) The name of the variable to manage. Note that variable
names can be hierarchical using slashes (e.g. "prod-variables/hostname").
* `parent` - (Required) The name of the RuntimeConfig resource containing this
variable.
* `text` or `value` - (Required) The content to associate with the variable.
Exactly one of `text` or `variable` must be specified. If `text` is specified,
it must be a valid UTF-8 string and less than 4096 bytes in length. If `value`
is specified, it must be base64 encoded and less than 4096 bytes in length.
- - -
* `project` - (Optional) The ID of the project in which the resource belongs. If it
is not provided, the provider project is used.
## Attributes Reference
In addition to the arguments listed above, the following computed attributes are
exported:
* `id` - an identifier for the resource with format `projects/{{project}}/configs/{{config}}/variables/{{name}}`
* `update_time` - (Computed) The timestamp in RFC3339 UTC "Zulu" format,
accurate to nanoseconds, representing when the variable was last updated.
Example: "2016-10-09T12:33:37.578138407Z".
## Import
Runtime Config Variables can be imported using the `name` or full variable name, e.g.
* `projects/my-gcp-project/configs/{{config_id}}/variables/{{name}}`
* `{{config_id}}/{{name}}`
In Terraform v1.5.0 and later, use an [`import` block](https://developer.hashicorp.com/terraform/language/import) to import Runtime Config Variables using one of the formats above. For example:
```tf
import {
id = "projects/my-gcp-project/configs/{{config_id}}/variables/{{name}}"
to = google_runtimeconfig_variable.default
}
```
When using the [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import), Runtime Config Variables can be imported using one of the formats above. For example:
```
$ terraform import google_runtimeconfig_variable.default projects/my-gcp-project/configs/{{config_id}}/variables/{{name}}
$ terraform import google_runtimeconfig_variable.default {{config_id}}/{{name}}
```
When importing using only the name, the provider project must be set.