From 89e27c0f9602b0bab7e58fd16792067110ed3de1 Mon Sep 17 00:00:00 2001 From: Stephen Kirby Date: Mon, 24 Jun 2024 19:25:24 +0000 Subject: [PATCH 01/11] moved coder_parameter --- examples/{resources => data-sources}/coder_parameter/resource.tf | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename examples/{resources => data-sources}/coder_parameter/resource.tf (100%) diff --git a/examples/resources/coder_parameter/resource.tf b/examples/data-sources/coder_parameter/resource.tf similarity index 100% rename from examples/resources/coder_parameter/resource.tf rename to examples/data-sources/coder_parameter/resource.tf From a7e9d7e757b74eb527771e83ca1925270e7f735d Mon Sep 17 00:00:00 2001 From: Stephen Kirby Date: Mon, 24 Jun 2024 19:30:26 +0000 Subject: [PATCH 02/11] swapped test target, renamed parameter example file --- .../coder_parameter/{resource.tf => data-source.tf} | 0 provider/examples_test.go | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename examples/data-sources/coder_parameter/{resource.tf => data-source.tf} (100%) diff --git a/examples/data-sources/coder_parameter/resource.tf b/examples/data-sources/coder_parameter/data-source.tf similarity index 100% rename from examples/data-sources/coder_parameter/resource.tf rename to examples/data-sources/coder_parameter/data-source.tf diff --git a/provider/examples_test.go b/provider/examples_test.go index 6fa73d21..d516493e 100644 --- a/provider/examples_test.go +++ b/provider/examples_test.go @@ -15,7 +15,7 @@ func TestExamples(t *testing.T) { t.Parallel() for _, testDir := range []string{ - "coder_parameter", + "coder_agent", "coder_workspace_tags", } { t.Run(testDir, func(t *testing.T) { From 22fcf243dc71a44abc7e6f4a8f1bfbcda0dce854 Mon Sep 17 00:00:00 2001 From: Stephen Kirby Date: Mon, 24 Jun 2024 19:32:29 +0000 Subject: [PATCH 03/11] make gen --- docs/data-sources/parameter.md | 122 ++++++++++++++++++++++++++++++++- 1 file changed, 121 insertions(+), 1 deletion(-) diff --git a/docs/data-sources/parameter.md b/docs/data-sources/parameter.md index 4bded2d3..9c6a11f5 100644 --- a/docs/data-sources/parameter.md +++ b/docs/data-sources/parameter.md @@ -10,7 +10,127 @@ description: |- Use this data source to configure editable options for workspaces. - +## Example Usage + +```terraform +provider "coder" {} + +data "coder_parameter" "example" { + name = "Region" + description = "Specify a region to place your workspace." + mutable = false + type = "string" + default = "asia-central1-a" + option { + value = "us-central1-a" + name = "US Central" + icon = "/icon/usa.svg" + } + option { + value = "asia-central1-a" + name = "Asia" + icon = "/icon/asia.svg" + } +} + +data "coder_parameter" "ami" { + name = "Machine Image" + description = <<-EOT + # Provide the machine image + See the [registry](https://container.registry.blah/namespace) for options. + EOT + option { + value = "ami-xxxxxxxx" + name = "Ubuntu" + icon = "/icon/ubuntu.svg" + } +} + +data "coder_parameter" "is_public_instance" { + name = "Is public instance?" + type = "bool" + icon = "/icon/docker.svg" + default = false +} + +data "coder_parameter" "cores" { + name = "CPU Cores" + type = "number" + icon = "/icon/cpu.svg" + default = 3 + order = 10 +} + +data "coder_parameter" "disk_size" { + name = "Disk Size" + type = "number" + default = "5" + order = 8 + validation { + # This can apply to number. + min = 0 + max = 10 + monotonic = "increasing" + } +} + +data "coder_parameter" "cat_lives" { + name = "Cat Lives" + type = "number" + default = "9" + validation { + # This can apply to number. + min = 0 + max = 10 + monotonic = "decreasing" + } +} + +data "coder_parameter" "fairy_tale" { + name = "Fairy Tale" + type = "string" + mutable = true + default = "Hansel and Gretel" + ephemeral = true +} + +data "coder_parameter" "users" { + name = "system_users" + display_name = "System users" + type = "list(string)" + default = jsonencode(["root", "user1", "user2"]) +} + +data "coder_parameter" "home_volume_size" { + name = "Home Volume Size" + description = <<-EOF + How large should your home volume be? + EOF + type = "number" + default = 30 + mutable = true + order = 3 + + option { + name = "30GB" + value = 30 + } + + option { + name = "60GB" + value = 60 + } + + option { + name = "100GB" + value = 100 + } + + validation { + monotonic = "increasing" + } +} +``` ## Schema From 0c57de0ca53be2f993e6b1bf02ef6323296ad6d1 Mon Sep 17 00:00:00 2001 From: Stephen Kirby Date: Mon, 24 Jun 2024 20:02:47 +0000 Subject: [PATCH 04/11] removed coder agent examples from test --- provider/examples_test.go | 1 - 1 file changed, 1 deletion(-) diff --git a/provider/examples_test.go b/provider/examples_test.go index d516493e..8923e14b 100644 --- a/provider/examples_test.go +++ b/provider/examples_test.go @@ -15,7 +15,6 @@ func TestExamples(t *testing.T) { t.Parallel() for _, testDir := range []string{ - "coder_agent", "coder_workspace_tags", } { t.Run(testDir, func(t *testing.T) { From 3a98b58efe3edcd5a6fbe2a346cc64ca9e98121f Mon Sep 17 00:00:00 2001 From: Stephen Kirby Date: Mon, 24 Jun 2024 20:28:08 +0000 Subject: [PATCH 05/11] attempting data source testing --- provider/examples_test.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/provider/examples_test.go b/provider/examples_test.go index 8923e14b..68a7c3ea 100644 --- a/provider/examples_test.go +++ b/provider/examples_test.go @@ -14,6 +14,7 @@ import ( func TestExamples(t *testing.T) { t.Parallel() + // Resource examples for _, testDir := range []string{ "coder_workspace_tags", } { @@ -32,6 +33,26 @@ func TestExamples(t *testing.T) { }) }) } + + // Data source examples + for _, testDir := range []string{ + "coder_parameter", + } { + t.Run(testDir, func(t *testing.T) { + testDir := testDir + t.Parallel() + + resource.Test(t, resource.TestCase{ + Providers: map[string]*schema.Provider{ + "coder": provider.New(), + }, + IsUnitTest: true, + Steps: []resource.TestStep{{ + Config: mustReadFile(t, "../examples/data-sources/"+testDir+"/data-source.tf"), + }}, + }) + }) + } } func mustReadFile(t *testing.T, path string) string { From 92f94d7e89baaaf02c5ac8ba6c41317e71c0efff Mon Sep 17 00:00:00 2001 From: Stephen Kirby Date: Mon, 24 Jun 2024 21:02:59 +0000 Subject: [PATCH 06/11] added git auth to test --- examples/data-sources/coder_git_auth/data-source.tf | 3 +-- provider/examples_test.go | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/data-sources/coder_git_auth/data-source.tf b/examples/data-sources/coder_git_auth/data-source.tf index eeed89aa..488554f2 100644 --- a/examples/data-sources/coder_git_auth/data-source.tf +++ b/examples/data-sources/coder_git_auth/data-source.tf @@ -1,5 +1,4 @@ -provider "coder" { -} +provider "coder" {} data "coder_git_auth" "github" { # Matches the ID of the git auth provider in Coder. diff --git a/provider/examples_test.go b/provider/examples_test.go index 68a7c3ea..be72f60a 100644 --- a/provider/examples_test.go +++ b/provider/examples_test.go @@ -37,6 +37,7 @@ func TestExamples(t *testing.T) { // Data source examples for _, testDir := range []string{ "coder_parameter", + "coder_git_auth" } { t.Run(testDir, func(t *testing.T) { testDir := testDir From 9f4971de07c8ae4576e33f576cfd1f9120405ef5 Mon Sep 17 00:00:00 2001 From: Stephen Kirby Date: Mon, 24 Jun 2024 21:15:16 +0000 Subject: [PATCH 07/11] reverted git auth test --- provider/examples_test.go | 1 - 1 file changed, 1 deletion(-) diff --git a/provider/examples_test.go b/provider/examples_test.go index be72f60a..68a7c3ea 100644 --- a/provider/examples_test.go +++ b/provider/examples_test.go @@ -37,7 +37,6 @@ func TestExamples(t *testing.T) { // Data source examples for _, testDir := range []string{ "coder_parameter", - "coder_git_auth" } { t.Run(testDir, func(t *testing.T) { testDir := testDir From 763827465384276e24770410e113033107849679 Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Tue, 25 Jun 2024 08:54:33 +0200 Subject: [PATCH 08/11] Refactor examples_test.go --- docs/data-sources/git_auth.md | 3 +- docs/data-sources/workspace_tags.md | 53 +++++++++++++++++++ .../coder_workspace_tags/data-source.tf} | 0 provider/examples_test.go | 43 +++++---------- 4 files changed, 68 insertions(+), 31 deletions(-) rename examples/{resources/coder_workspace_tags/resource.tf => data-sources/coder_workspace_tags/data-source.tf} (100%) diff --git a/docs/data-sources/git_auth.md b/docs/data-sources/git_auth.md index 53e01981..fe64805e 100644 --- a/docs/data-sources/git_auth.md +++ b/docs/data-sources/git_auth.md @@ -13,8 +13,7 @@ Use this data source to require users to authenticate with a Git provider prior ## Example Usage ```terraform -provider "coder" { -} +provider "coder" {} data "coder_git_auth" "github" { # Matches the ID of the git auth provider in Coder. diff --git a/docs/data-sources/workspace_tags.md b/docs/data-sources/workspace_tags.md index 62f72b0f..010adfe3 100644 --- a/docs/data-sources/workspace_tags.md +++ b/docs/data-sources/workspace_tags.md @@ -10,7 +10,60 @@ description: |- Use this data source to configure workspace tags to select provisioners. +## Example Usage +```terraform +provider "coder" {} + +data "coder_parameter" "os_selector" { + name = "os_selector" + display_name = "Operating System" + mutable = false + + default = "osx" + + option { + icon = "/icons/linux.png" + name = "Linux" + value = "linux" + } + option { + icon = "/icons/osx.png" + name = "OSX" + value = "osx" + } + option { + icon = "/icons/windows.png" + name = "Windows" + value = "windows" + } +} + +data "coder_parameter" "feature_cache_enabled" { + name = "feature_cache_enabled" + display_name = "Enable cache?" + type = "bool" + + default = false +} + +data "coder_parameter" "feature_debug_enabled" { + name = "feature_debug_enabled" + display_name = "Enable debug?" + type = "bool" + + default = true +} + +data "coder_workspace_tags" "custom_workspace_tags" { + tags = { + "cluster" = "developers" + "os" = data.coder_parameter.os_selector.value + "debug" = "${data.coder_parameter.feature_debug_enabled.value}+12345" + "cache" = data.coder_parameter.feature_cache_enabled.value == "true" ? "nix-with-cache" : "no-cache" + } +} +``` ## Schema diff --git a/examples/resources/coder_workspace_tags/resource.tf b/examples/data-sources/coder_workspace_tags/data-source.tf similarity index 100% rename from examples/resources/coder_workspace_tags/resource.tf rename to examples/data-sources/coder_workspace_tags/data-source.tf diff --git a/provider/examples_test.go b/provider/examples_test.go index 68a7c3ea..ad9691d2 100644 --- a/provider/examples_test.go +++ b/provider/examples_test.go @@ -1,6 +1,7 @@ package provider_test import ( + "fmt" "os" "testing" @@ -14,45 +15,29 @@ import ( func TestExamples(t *testing.T) { t.Parallel() - // Resource examples for _, testDir := range []string{ + "coder_parameter", "coder_workspace_tags", } { t.Run(testDir, func(t *testing.T) { testDir := testDir t.Parallel() - resource.Test(t, resource.TestCase{ - Providers: map[string]*schema.Provider{ - "coder": provider.New(), - }, - IsUnitTest: true, - Steps: []resource.TestStep{{ - Config: mustReadFile(t, "../examples/resources/"+testDir+"/resource.tf"), - }}, - }) + resourceTest(t, testDir) }) } +} - // Data source examples - for _, testDir := range []string{ - "coder_parameter", - } { - t.Run(testDir, func(t *testing.T) { - testDir := testDir - t.Parallel() - - resource.Test(t, resource.TestCase{ - Providers: map[string]*schema.Provider{ - "coder": provider.New(), - }, - IsUnitTest: true, - Steps: []resource.TestStep{{ - Config: mustReadFile(t, "../examples/data-sources/"+testDir+"/data-source.tf"), - }}, - }) - }) - } +func resourceTest(t *testing.T, testDir string) { + resource.Test(t, resource.TestCase{ + Providers: map[string]*schema.Provider{ + "coder": provider.New(), + }, + IsUnitTest: true, + Steps: []resource.TestStep{{ + Config: mustReadFile(t, fmt.Sprintf("../examples/data-sources/%s/data-source.tf", testDir)), + }}, + }) } func mustReadFile(t *testing.T, path string) string { From 6849c9dd84e5eb5dff9760f85446f88cd3fbd362 Mon Sep 17 00:00:00 2001 From: Stephen Kirby Date: Tue, 25 Jun 2024 16:57:03 +0000 Subject: [PATCH 09/11] took a stab at expanding example test --- provider/examples_test.go | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/provider/examples_test.go b/provider/examples_test.go index ad9691d2..275923c6 100644 --- a/provider/examples_test.go +++ b/provider/examples_test.go @@ -12,30 +12,36 @@ import ( "github.com/coder/terraform-provider-coder/provider" ) +type ResourceTestData struct { + Name string + ResourceType string +} + func TestExamples(t *testing.T) { t.Parallel() - for _, testDir := range []string{ - "coder_parameter", - "coder_workspace_tags", + for _, resourceTestData := range []ResourceTestData{ + {"coder_parameter", "data-source"}, + {"coder_workspace_tags", "data-source"}, + {"coder_app", "resource"} } { - t.Run(testDir, func(t *testing.T) { - testDir := testDir + t.Run(resourceTestData.Name, func(t *testing.T) { + resourceTestData := resourceTestData t.Parallel() - resourceTest(t, testDir) + resourceTest(t, resourceTestData) }) } } -func resourceTest(t *testing.T, testDir string) { +func resourceTest(t *testing.T, testData ResourceTestData) { resource.Test(t, resource.TestCase{ Providers: map[string]*schema.Provider{ "coder": provider.New(), }, IsUnitTest: true, Steps: []resource.TestStep{{ - Config: mustReadFile(t, fmt.Sprintf("../examples/data-sources/%s/data-source.tf", testDir)), + Config: mustReadFile(t, fmt.Sprintf("../examples/%ss/%s/%s.tf", testData.ResourceType, testData.Name, testData.ResourceType)), }}, }) } From e8c7f5d020444245315cd9a159906a6409bd032c Mon Sep 17 00:00:00 2001 From: Stephen Kirby Date: Tue, 25 Jun 2024 16:58:52 +0000 Subject: [PATCH 10/11] added provider to coder_ap --- examples/resources/coder_app/resource.tf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/examples/resources/coder_app/resource.tf b/examples/resources/coder_app/resource.tf index 9345dfc5..bd9a7d11 100644 --- a/examples/resources/coder_app/resource.tf +++ b/examples/resources/coder_app/resource.tf @@ -1,3 +1,5 @@ +provider "coder" {} + data "coder_workspace" "me" {} resource "coder_agent" "dev" { From 2b60300c0cc9297932ac3e0f340ad8bd14c4577b Mon Sep 17 00:00:00 2001 From: Stephen Kirby Date: Tue, 25 Jun 2024 17:05:56 +0000 Subject: [PATCH 11/11] manually reverted test changes --- examples/resources/coder_app/resource.tf | 2 -- provider/examples_test.go | 23 ++++++++--------------- 2 files changed, 8 insertions(+), 17 deletions(-) diff --git a/examples/resources/coder_app/resource.tf b/examples/resources/coder_app/resource.tf index bd9a7d11..9345dfc5 100644 --- a/examples/resources/coder_app/resource.tf +++ b/examples/resources/coder_app/resource.tf @@ -1,5 +1,3 @@ -provider "coder" {} - data "coder_workspace" "me" {} resource "coder_agent" "dev" { diff --git a/provider/examples_test.go b/provider/examples_test.go index 275923c6..ab68954b 100644 --- a/provider/examples_test.go +++ b/provider/examples_test.go @@ -8,40 +8,33 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/stretchr/testify/require" - "github.com/coder/terraform-provider-coder/provider" ) -type ResourceTestData struct { - Name string - ResourceType string -} - func TestExamples(t *testing.T) { t.Parallel() - for _, resourceTestData := range []ResourceTestData{ - {"coder_parameter", "data-source"}, - {"coder_workspace_tags", "data-source"}, - {"coder_app", "resource"} + for _, testDir := range []string{ + "coder_parameter", + "coder_workspace_tags", } { - t.Run(resourceTestData.Name, func(t *testing.T) { - resourceTestData := resourceTestData + t.Run(testDir, func(t *testing.T) { + testDir := testDir t.Parallel() - resourceTest(t, resourceTestData) + resourceTest(t, testDir) }) } } -func resourceTest(t *testing.T, testData ResourceTestData) { +func resourceTest(t *testing.T, testDir string) { resource.Test(t, resource.TestCase{ Providers: map[string]*schema.Provider{ "coder": provider.New(), }, IsUnitTest: true, Steps: []resource.TestStep{{ - Config: mustReadFile(t, fmt.Sprintf("../examples/%ss/%s/%s.tf", testData.ResourceType, testData.Name, testData.ResourceType)), + Config: mustReadFile(t, fmt.Sprintf("../examples/data-sources/%s/data-source.tf", testDir)), }}, }) } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

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:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy