diff --git a/docs/images/icons/key.svg b/docs/images/icons/key.svg new file mode 100644 index 0000000000000..a0e8cf03a72fb --- /dev/null +++ b/docs/images/icons/key.svg @@ -0,0 +1 @@ + diff --git a/docs/images/icons/table-rows.svg b/docs/images/icons/table-rows.svg new file mode 100644 index 0000000000000..3f74e90a4f587 --- /dev/null +++ b/docs/images/icons/table-rows.svg @@ -0,0 +1 @@ + diff --git a/docs/images/metadata-ui.png b/docs/images/metadata-ui.png new file mode 100644 index 0000000000000..f3be43011d0ae Binary files /dev/null and b/docs/images/metadata-ui.png differ diff --git a/docs/manifest.json b/docs/manifest.json index 8a65569c0afb8..88a460967d85c 100644 --- a/docs/manifest.json +++ b/docs/manifest.json @@ -61,7 +61,14 @@ { "title": "Provider Authentication", "description": "Learn how to authenticate the provisioner", - "path": "./templates/authentication.md" + "path": "./templates/authentication.md", + "icon_path": "./images/icons/key.svg" + }, + { + "title": "Resource Metadata", + "description": "Learn how to expose resource data to users", + "path": "./templates/resource-metadata.md", + "icon_path": "./images/icons/table-rows.svg" } ] }, diff --git a/docs/templates/resource-metadata.md b/docs/templates/resource-metadata.md new file mode 100644 index 0000000000000..e38aee92f4082 --- /dev/null +++ b/docs/templates/resource-metadata.md @@ -0,0 +1,60 @@ +# Resource Metadata + +Expose key workspace information to your users via [`coder_metadata`](https://registry.terraform.io/providers/coder/coder/latest/docs/resources/metadata) resources in your template code. + + + +
+Coder automatically generates the type
metadata.
+
+
+You can use `coder_metadata` to show
+
+- Compute resources
+- IP addresses
+- [Secrets](../secrets.md#displaying-secrets)
+- Important file paths
+
+and any other Terraform resource attribute.
+
+## Example
+
+Expose the disk size, deployment name, and persistent
+directory in a Kubernetes template with:
+
+```hcl
+resource "kubernetes_persistent_volume_claim" "root" {
+ ...
+}
+
+resource "kubernetes_deployment" "coder" {
+ # My deployment is ephemeral
+ count = data.coder_workspace.me.start_count
+ ...
+}
+
+resource "coder_metadata" "pvc" {
+ resource_id = kubernetes_persistent_volume_claim.root.id
+ item {
+ key = "size"
+ value = kubernetes_persistent_volume_claim.root.spec[0].resources[0].requests.storage
+ }
+ item {
+ key = "dir"
+ value = "/home/coder"
+ }
+}
+
+resource "coder_metadata" "deployment" {
+ count = data.coder_workspace.me.start_count
+ resource_id = kubernetes_deployment.coder[0].id
+ item {
+ key = "name"
+ value = kubernetes_deployment.coder[0].metadata[0].name
+ }
+}
+```
+
+## Up next
+
+- Learn about [secrets](../secrets.md)
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: