Skip to content

Commit cc9e59b

Browse files
feat: add coder_secret data source
1 parent e6d58d0 commit cc9e59b

File tree

2 files changed

+41
-0
lines changed

2 files changed

+41
-0
lines changed

provider/provider.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ func New() *schema.Provider {
6464
"coder_external_auth": externalAuthDataSource(),
6565
"coder_workspace_owner": workspaceOwnerDataSource(),
6666
"coder_workspace_preset": workspacePresetDataSource(),
67+
"coder_secret": secretDataSource(),
6768
},
6869
ResourcesMap: map[string]*schema.Resource{
6970
"coder_agent": agentResource(),

provider/secret.go

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package provider
2+
3+
import (
4+
"context"
5+
6+
"github.com/coder/terraform-provider-coder/v2/provider/helpers"
7+
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
8+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
9+
)
10+
11+
func secretDataSource() *schema.Resource {
12+
return &schema.Resource{
13+
SchemaVersion: 1,
14+
15+
Description: "",
16+
ReadContext: func(ctx context.Context, rd *schema.ResourceData, i interface{}) diag.Diagnostics {
17+
envName, ok := rd.Get("env_name").(string)
18+
if !ok || envName == "" {
19+
return diag.Errorf("env_name is required")
20+
}
21+
envVal := helpers.OptionalEnv(envName)
22+
23+
rd.Set("value", envVal)
24+
rd.SetId(envName)
25+
return nil
26+
},
27+
Schema: map[string]*schema.Schema{
28+
"env_name": {
29+
Type: schema.TypeString,
30+
Description: "",
31+
Required: true,
32+
},
33+
"value": {
34+
Type: schema.TypeString,
35+
Description: "",
36+
Computed: true,
37+
},
38+
},
39+
}
40+
}

0 commit comments

Comments
 (0)