Skip to content

Commit

Permalink
feat: Expose access_port on coder_workspace to allow for alternative …
Browse files Browse the repository at this point in the history
…hosts (#37)

This allows our Docker template to use a custom host with the correct port.
  • Loading branch information
kylecarbs authored Aug 15, 2022
1 parent 5e9c0be commit 9975301
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 1 deletion.
1 change: 1 addition & 0 deletions docs/data-sources/workspace.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ resource "kubernetes_pod" "dev" {

### Read-Only

- `access_port` (Number) The access port of the Coder deployment provisioning this workspace.
- `access_url` (String) The access URL of the Coder deployment provisioning this workspace.
- `id` (String) UUID of the workspace.
- `name` (String) Name of the workspace.
Expand Down
19 changes: 19 additions & 0 deletions internal/provider/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"os"
"reflect"
"runtime"
"strconv"
"strings"

"github.com/google/uuid"
Expand Down Expand Up @@ -106,6 +107,19 @@ func New() *schema.Provider {
}
rd.Set("access_url", config.URL.String())

rawPort := config.URL.Port()
if rawPort == "" {
rawPort = "80"
if config.URL.Scheme == "https" {
rawPort = "443"
}
}
port, err := strconv.Atoi(rawPort)
if err != nil {
return diag.Errorf("couldn't parse port %q", port)
}
rd.Set("access_port", port)

return nil
},
Schema: map[string]*schema.Schema{
Expand All @@ -114,6 +128,11 @@ func New() *schema.Provider {
Computed: true,
Description: "The access URL of the Coder deployment provisioning this workspace.",
},
"access_port": {
Type: schema.TypeInt,
Computed: true,
Description: "The access port of the Coder deployment provisioning this workspace.",
},
"start_count": {
Type: schema.TypeInt,
Computed: true,
Expand Down
3 changes: 2 additions & 1 deletion internal/provider/provider_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ func TestWorkspace(t *testing.T) {
Steps: []resource.TestStep{{
Config: `
provider "coder" {
url = "https://example.com"
url = "https://example.com:8080"
}
data "coder_workspace" "me" {
}`,
Expand All @@ -45,6 +45,7 @@ func TestWorkspace(t *testing.T) {
value := attribs["transition"]
require.NotNil(t, value)
t.Log(value)
require.Equal(t, "8080", attribs["access_port"])
require.Equal(t, "owner123", attribs["owner"])
require.Equal(t, "owner123@example.com", attribs["owner_email"])
return nil
Expand Down

0 comments on commit 9975301

Please sign in to comment.