diff --git a/docs/resources/agent.md b/docs/resources/agent.md index 7e20ade4..d465c173 100644 --- a/docs/resources/agent.md +++ b/docs/resources/agent.md @@ -26,6 +26,23 @@ resource "coder_agent" "dev" { web_terminal = true ssh_helper = false } + + metadata { + display_name = "CPU Usage" + key = "cpu_usage" + script = "coder stat cpu" + interval = 10 + timeout = 1 + order = 2 + } + metadata { + display_name = "RAM Usage" + key = "ram_usage" + script = "coder stat mem" + interval = 10 + timeout = 1 + order = 1 + } } resource "kubernetes_pod" "dev" { @@ -97,4 +114,5 @@ Required: Optional: - `display_name` (String) The user-facing name of this value. +- `order` (Number) The order determines the position of agent metadata in the UI/CLI presentation. The lowest order is shown first and parameters with equal order are sorted by key (ascending order). - `timeout` (Number) The maximum time the command is allowed to run in seconds. diff --git a/examples/resources/coder_agent/resource.tf b/examples/resources/coder_agent/resource.tf index d5235a18..0ed69ea3 100644 --- a/examples/resources/coder_agent/resource.tf +++ b/examples/resources/coder_agent/resource.tf @@ -11,6 +11,23 @@ resource "coder_agent" "dev" { web_terminal = true ssh_helper = false } + + metadata { + display_name = "CPU Usage" + key = "cpu_usage" + script = "coder stat cpu" + interval = 10 + timeout = 1 + order = 2 + } + metadata { + display_name = "RAM Usage" + key = "ram_usage" + script = "coder stat mem" + interval = 10 + timeout = 1 + order = 1 + } } resource "kubernetes_pod" "dev" { diff --git a/provider/agent.go b/provider/agent.go index 4ba3f706..cdeca50e 100644 --- a/provider/agent.go +++ b/provider/agent.go @@ -239,6 +239,11 @@ func agentResource() *schema.Resource { ForceNew: true, Required: true, }, + "order": { + Type: schema.TypeInt, + Optional: true, + Description: "The order determines the position of agent metadata in the UI/CLI presentation. The lowest order is shown first and parameters with equal order are sorted by key (ascending order).", + }, }, }, }, diff --git a/provider/agent_test.go b/provider/agent_test.go index a68b6580..f70a7f90 100644 --- a/provider/agent_test.go +++ b/provider/agent_test.go @@ -225,6 +225,7 @@ func TestAgent_Metadata(t *testing.T) { script = "ps aux | wc -l" interval = 5 timeout = 1 + order = 7 } } `, @@ -244,6 +245,7 @@ func TestAgent_Metadata(t *testing.T) { require.Equal(t, "ps aux | wc -l", attr["metadata.0.script"]) require.Equal(t, "5", attr["metadata.0.interval"]) require.Equal(t, "1", attr["metadata.0.timeout"]) + require.Equal(t, "7", attr["metadata.0.order"]) return nil }, }},