Skip to content

Commit 601b056

Browse files
committed
Generate docs and update toolchain version
1 parent a22ccaa commit 601b056

File tree

5 files changed

+261
-91
lines changed

5 files changed

+261
-91
lines changed

docs/guides/v1-to-v2-migration.md

-45
This file was deleted.

docs/guides/version-2-upgrade.md

+130
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
---
2+
page_title: "Terraform Coder Provider Version 2 Upgrade Guide"
3+
---
4+
5+
# Terraform Coder Provider Version 2 Upgrade Guide
6+
7+
Version 2.0.0 of the Coder provider for Terraform is a major release that removes and introduces some changes that you will need to consider when upgrading.
8+
This guide is intended to help with the process and focus only on the changes from version 1.X to version 2.0.0.
9+
10+
11+
!> Using Version 2.0.0 of the Coder provider requires Coder Server version [`2.13.0`](https://github.com/coder/coder/releases/tag/v2.13.0) or later.
12+
13+
Upgrade topics:
14+
15+
- [Provider Version Configuration](#provider-version-configuration)
16+
- [Provider Arguments](#provider-arguments)
17+
- [Data Source: coder_git_auth --> coder_external_auth](#data-source-coder_git_auth)
18+
- [Data Source: coder_workspace](#data-source-coder_workspace)
19+
20+
## Provider Version Configuration
21+
22+
-> Before upgrading to version 2.0.0, it is recommended to upgrade to the most recent 1.X version and ensure that your environment successfully runs [`terraform plan`](https://developer.hashicorp.com/terraform/cli/commands/plan) without unexpected changes or deprecation notices.
23+
24+
We recommended using [version constraints](https://developer.hashicorp.com/terraform/language/providers/requirements#version-constraints) when configuring Terraform providers.
25+
26+
27+
For example, given the previous configuration:
28+
29+
```terraform
30+
terraform {
31+
required_providers {
32+
aws = {
33+
source = "hashicorp/aws"
34+
version = "~> 4.65"
35+
}
36+
}
37+
}
38+
39+
provider "coder" {
40+
feature_use_managed_variables = true
41+
}
42+
```
43+
44+
Update to the latest 2.X version:
45+
46+
```terraform
47+
terraform {
48+
required_providers {
49+
coder = {
50+
source = "coder/coder"
51+
version = "~> 2.0.0"
52+
}
53+
}
54+
}
55+
56+
provider "coder" {}
57+
```
58+
59+
## Provider Arguments
60+
61+
Version 2.0.0 removes the `feature_use_managed_variables` attribute from the `provider` block.
62+
63+
64+
## Data Source: `coder_git_auth`
65+
66+
If you are using this data source, you must replace it with the [`coder_external_auth`](../docs/data-sources/external-auth.md) data source. The `coder_external_auth` data source is a more generic data source that can be used to create any external authentication provider.
67+
68+
For example, given the previous configuration:
69+
70+
```terraform
71+
data "coder_git_auth" "example" {
72+
id = "example"
73+
}
74+
```
75+
76+
Update to the new data source:
77+
78+
```terraform
79+
data "coder_external_auth" "example" {
80+
id = "example"
81+
}
82+
```
83+
84+
## Data Source: `coder_workspace`
85+
86+
If you are using the `owner` properties of the `coder_workspace` data source, you must remove them and use the [`coder_workspace_owner`](../docs/data-sources/workspace-owner.md) data source instead. The `coder_workspace_owner` data source provides additional properties of the workspace owner.
87+
88+
- Remove `owner_id` attribute. Use [`data.coder_workspace_owner.me.id`](../docs/data-sources/workspace-owner.md#id) instead.
89+
- Remove `owner` attribute. Use [`data.coder_workspace_owner.me.name`](../docs/data-sources/workspace-owner.md#name) instead.
90+
- Remove `owner_name` attribute. Use [`data.coder_workspace_owner.me.full_name`](../docs/data-sources/workspace-owner.md#full_name) instead.
91+
- Remove `owner_email` attribute. Use [`data.coder_workspace_owner.me.email`](../docs/data-sources/workspace-owner.md#email) instead.
92+
- Remove `owner_groups` attribute. Use [`data.coder_workspace_owner.me.groups`](../docs/data-sources/workspace-owner.md#groups) instead.
93+
- Remove `owner_oidc_access_token` attribute. Use [`data.coder_workspace_owner.me.oidc_access_token`](../docs/data-sources/workspace-owner.md#oidc_access_token) instead.
94+
- Remove `owner_session_token` attribute. Use [`data.coder_workspace_owner.me.session_token`](../docs/data-sources/workspace-owner.md#session_token) instead.
95+
96+
97+
For example, given the previous configuration:
98+
99+
```terraform
100+
data "coder_workspace" "me" {}
101+
102+
...
103+
id = data.coder_workspace.me.id
104+
username = data.coder_workspace.me.owner
105+
user_id = data.coder_workspace.me.owner_id
106+
full_name = data.coder_workspace.me.owner_name
107+
email = data.coder_workspace.me.owner_email
108+
groups = data.coder_workspace.me.owner_groups
109+
oidc_access_token = data.coder_workspace.me.owner_oidc_access_token
110+
session_token = data.coder_workspace.me.owner_session_token
111+
...
112+
```
113+
114+
Update to the new data source:
115+
116+
```terraform
117+
data "coder_workspace_owner" "me" {}
118+
119+
...
120+
id = data.coder_workspace_owner.me.id
121+
username = data.coder_workspace_owner.me.name
122+
full_name = data.coder_workspace_owner.me.full_name
123+
email = data.coder_workspace_owner.me.email
124+
groups = data.coder_workspace_owner.me.groups
125+
oidc_access_token = data.coder_workspace_owner.me.oidc_access_token
126+
session_token = data.coder_workspace_owner.me.session_token
127+
...
128+
```
129+
130+
->While we do not anticipate these changes to affect existing resources, we strongly advice reviewing the plan produced by Terraform to ensure no resources are accidentally removed or altered in an undesired way. If you encounter any unexpected behavior, please report it by opening a GitHub [issue](https://github.com/coder/terraform-provider-coder/issues).

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module github.com/coder/terraform-provider-coder
22

33
go 1.22
44

5-
toolchain go1.22.3
5+
toolchain go1.22.9
66

77
require (
88
github.com/docker/docker v26.1.5+incompatible

templates/guides/v1-to-v2-migration.md.tmpl

-45
This file was deleted.
+130
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
---
2+
page_title: "Terraform Coder Provider Version 2 Upgrade Guide"
3+
---
4+
5+
# Terraform Coder Provider Version 2 Upgrade Guide
6+
7+
Version 2.0.0 of the Coder provider for Terraform is a major release that removes and introduces some changes that you will need to consider when upgrading.
8+
This guide is intended to help with the process and focus only on the changes from version 1.X to version 2.0.0.
9+
10+
11+
!> Using Version 2.0.0 of the Coder provider requires Coder Server version [`2.13.0`](https://github.com/coder/coder/releases/tag/v2.13.0) or later.
12+
13+
Upgrade topics:
14+
15+
- [Provider Version Configuration](#provider-version-configuration)
16+
- [Provider Arguments](#provider-arguments)
17+
- [Data Source: coder_git_auth --> coder_external_auth](#data-source-coder_git_auth)
18+
- [Data Source: coder_workspace](#data-source-coder_workspace)
19+
20+
## Provider Version Configuration
21+
22+
-> Before upgrading to version 2.0.0, it is recommended to upgrade to the most recent 1.X version and ensure that your environment successfully runs [`terraform plan`](https://developer.hashicorp.com/terraform/cli/commands/plan) without unexpected changes or deprecation notices.
23+
24+
We recommended using [version constraints](https://developer.hashicorp.com/terraform/language/providers/requirements#version-constraints) when configuring Terraform providers.
25+
26+
27+
For example, given the previous configuration:
28+
29+
```terraform
30+
terraform {
31+
required_providers {
32+
aws = {
33+
source = "hashicorp/aws"
34+
version = "~> 4.65"
35+
}
36+
}
37+
}
38+
39+
provider "coder" {
40+
feature_use_managed_variables = true
41+
}
42+
```
43+
44+
Update to the latest 2.X version:
45+
46+
```terraform
47+
terraform {
48+
required_providers {
49+
coder = {
50+
source = "coder/coder"
51+
version = "~> 2.0.0"
52+
}
53+
}
54+
}
55+
56+
provider "coder" {}
57+
```
58+
59+
## Provider Arguments
60+
61+
Version 2.0.0 removes the `feature_use_managed_variables` attribute from the `provider` block.
62+
63+
64+
## Data Source: `coder_git_auth`
65+
66+
If you are using this data source, you must replace it with the [`coder_external_auth`](../docs/data-sources/external-auth.md) data source. The `coder_external_auth` data source is a more generic data source that can be used to create any external authentication provider.
67+
68+
For example, given the previous configuration:
69+
70+
```terraform
71+
data "coder_git_auth" "example" {
72+
id = "example"
73+
}
74+
```
75+
76+
Update to the new data source:
77+
78+
```terraform
79+
data "coder_external_auth" "example" {
80+
id = "example"
81+
}
82+
```
83+
84+
## Data Source: `coder_workspace`
85+
86+
If you are using the `owner` properties of the `coder_workspace` data source, you must remove them and use the [`coder_workspace_owner`](../docs/data-sources/workspace-owner.md) data source instead. The `coder_workspace_owner` data source provides additional properties of the workspace owner.
87+
88+
- Remove `owner_id` attribute. Use [`data.coder_workspace_owner.me.id`](../docs/data-sources/workspace-owner.md#id) instead.
89+
- Remove `owner` attribute. Use [`data.coder_workspace_owner.me.name`](../docs/data-sources/workspace-owner.md#name) instead.
90+
- Remove `owner_name` attribute. Use [`data.coder_workspace_owner.me.full_name`](../docs/data-sources/workspace-owner.md#full_name) instead.
91+
- Remove `owner_email` attribute. Use [`data.coder_workspace_owner.me.email`](../docs/data-sources/workspace-owner.md#email) instead.
92+
- Remove `owner_groups` attribute. Use [`data.coder_workspace_owner.me.groups`](../docs/data-sources/workspace-owner.md#groups) instead.
93+
- Remove `owner_oidc_access_token` attribute. Use [`data.coder_workspace_owner.me.oidc_access_token`](../docs/data-sources/workspace-owner.md#oidc_access_token) instead.
94+
- Remove `owner_session_token` attribute. Use [`data.coder_workspace_owner.me.session_token`](../docs/data-sources/workspace-owner.md#session_token) instead.
95+
96+
97+
For example, given the previous configuration:
98+
99+
```terraform
100+
data "coder_workspace" "me" {}
101+
102+
...
103+
id = data.coder_workspace.me.id
104+
username = data.coder_workspace.me.owner
105+
user_id = data.coder_workspace.me.owner_id
106+
full_name = data.coder_workspace.me.owner_name
107+
email = data.coder_workspace.me.owner_email
108+
groups = data.coder_workspace.me.owner_groups
109+
oidc_access_token = data.coder_workspace.me.owner_oidc_access_token
110+
session_token = data.coder_workspace.me.owner_session_token
111+
...
112+
```
113+
114+
Update to the new data source:
115+
116+
```terraform
117+
data "coder_workspace_owner" "me" {}
118+
119+
...
120+
id = data.coder_workspace_owner.me.id
121+
username = data.coder_workspace_owner.me.name
122+
full_name = data.coder_workspace_owner.me.full_name
123+
email = data.coder_workspace_owner.me.email
124+
groups = data.coder_workspace_owner.me.groups
125+
oidc_access_token = data.coder_workspace_owner.me.oidc_access_token
126+
session_token = data.coder_workspace_owner.me.session_token
127+
...
128+
```
129+
130+
->While we do not anticipate these changes to affect existing resources, we strongly advice reviewing the plan produced by Terraform to ensure no resources are accidentally removed or altered in an undesired way. If you encounter any unexpected behavior, please report it by opening a GitHub [issue](https://github.com/coder/terraform-provider-coder/issues).

0 commit comments

Comments
 (0)