You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: website/docs/cloud-docs/api-docs/variable-sets.mdx
+12-4
Original file line number
Diff line number
Diff line change
@@ -27,6 +27,7 @@ Properties without a default value are required.
27
27
|`data.name`| string || The name of the variable set. |
28
28
|`data.description`| string |`""`| Text displayed in the UI to contextualize the variable set and its purpose. |
29
29
|`data.global`| boolean |`false`| When true, Terraform Cloud automatically applies the variable set to all current and future workspaces in the organization. |
30
+
|`data.priority`| boolean |`false`| When true, the variables in the set override any other variable values with a more specific scope, including values set on the command line. |
30
31
|`data.relationships.workspaces`| array |\`[]` | Array of references to workspaces that the variable set should be assigned to. |
31
32
|`data.relationships.projects`| array |\`[]` | Array of references to projects that the variable set should be assigned to. |
32
33
|`data.relationships.vars`| array |\`[]` | Array of complete variable definitions that comprise the variable set. |
@@ -48,7 +49,8 @@ Terraform Cloud does not allow different global variable sets to contain conflic
48
49
"attributes": {
49
50
"name": "MyVarset",
50
51
"description": "Full of vars and such for mass reuse",
51
-
"global": false
52
+
"global": false,
53
+
"priority": false,
52
54
},
53
55
"relationships": {
54
56
"workspaces": {
@@ -97,7 +99,8 @@ curl \
97
99
"attributes": {
98
100
"name": "MyVarset",
99
101
"description": "Full of vars and such for mass reuse",
100
-
"global": false
102
+
"global": false,
103
+
"priority": false,
101
104
},
102
105
"relationships": {
103
106
"workspaces": {
@@ -151,6 +154,7 @@ Terraform Cloud does not allow global variable sets to contain conflicting varia
151
154
|`data.name`| string || The name of the variable set. |
152
155
|`data.description`| string || Text displayed in the UI to contextualize the variable set and its purpose. |
153
156
|`data.global`| boolean || When true, Terraform Cloud automatically applies the variable set to all current and future workspaces in the organization. |
157
+
|`data.priority`| boolean |`false`| When true, the variables in the set override any other variable values set with a more specific scope, including values set on the command line. |
154
158
|`data.relationships.workspaces`| array ||**Optional** Array of references to workspaces that the variable set should be assigned to. Sending an empty array clears all workspace assignments. |
155
159
|`data.relationships.projects`| array ||**Optional** Array of references to projects that the variable set should be assigned to. Sending an empty array clears all project assignments. |
156
160
|`data.relationships.vars`| array ||**Optional** Array of complete variable definitions to add to the variable set. |
@@ -170,7 +174,8 @@ Terraform Cloud does not allow global variable sets to contain conflicting varia
170
174
"attributes": {
171
175
"name": "MyVarset",
172
176
"description": "Full of vars and such for mass reuse. Now global!",
173
-
"global": true
177
+
"global": true,
178
+
"priority": true,
174
179
},
175
180
"relationships": {
176
181
"workspaces": {
@@ -226,7 +231,8 @@ curl \
226
231
"attributes": {
227
232
"name": "MyVarset",
228
233
"description": "Full of vars and such for mass reuse. Now global!",
229
-
"global": true
234
+
"global": true,
235
+
"priority": true
230
236
},
231
237
"relationships": {
232
238
"vars": {
@@ -298,6 +304,7 @@ curl \
298
304
"name": "MyVarset",
299
305
"description": "Full of vars and such for mass reuse",
300
306
"global": false,
307
+
"priority": false,
301
308
"updated-at": "2023-03-06T21:48:33.588Z",
302
309
"var-count": 5,
303
310
"workspace-count": 2,
@@ -411,6 +418,7 @@ All of the list endpoints support pagination [with standard URL query parameters
411
418
"name": "MyVarset",
412
419
"description": "Full of vars and such for mass reuse",
Copy file name to clipboardexpand all lines: website/docs/cloud-docs/workspaces/variables/index.mdx
+32-9
Original file line number
Diff line number
Diff line change
@@ -102,6 +102,8 @@ When workspace-scoped variable sets have conflicting variables, Terraform Cloud
102
102
103
103
For example, if you apply `A_Variable_Set` and `B_Variable_Set` to the same workspace, Terraform Cloud will use any conflicting variables from `A_Variable_Set`. This is the case regardless of which variable set has been edited most recently. Terraform Cloud only considers the lexical ordering of variable set names when determining precedence.
104
104
105
+
If [prioritized](/terraform/cloud-docs/workspaces/variables/index#precedence-with-priority-variable-sets), variables in a workspace variable set have precedence over workspace or run applied variables with the same key.
106
+
105
107
### 5. Project-Scoped Variable Sets
106
108
107
109
Workspace-specific variables and workspace-scoped variable sets always take precedence over project-scoped variable sets that are applied to workspaces within a project.
@@ -112,10 +114,14 @@ When project-scoped variable sets have conflicting variables, Terraform Cloud co
112
114
113
115
For example, if you apply `A_Variable_Set` and `B_Variable_Set` to the same project, Terraform Cloud uses any conflicting variables from `A_Variable_Set`. This is the case regardless of which variable set has been edited most recently. Terraform Cloud only considers the lexical ordering of variable set names when determining precedence.
114
116
117
+
If prioritized [prioritized](/terraform/cloud-docs/workspaces/variables/index#precedence-with-priority-variable-sets), variables in a project variable set have precedence over project and workspace scoped variable sets, workspace applied, and run applied variables with the same key.
118
+
115
119
### 6. Global Variable Sets
116
120
117
121
Workspace and project-scoped variable sets always take precedence over global variable sets that are applied to all workspaces within an organization. Terraform does not allow global variable sets to contain variables with the same key, so they cannot conflict.
118
122
123
+
If prioritized [prioritized](/terraform/cloud-docs/workspaces/variables/index#precedence-with-priority-variable-sets), variables in a global variable set have precedence over all other variables with the same key.
124
+
119
125
### 7. `*.auto.tfvars` Variable Files
120
126
121
127
Variables in the Terraform Cloud workspace and variables provided through the command line always overwrite variables with the same key from files ending in `.auto.tfvars`.
@@ -130,18 +136,23 @@ Variables in the `.auto.tfvars` files take precedence over variables in the `ter
130
136
131
137
Consider an example workspace that has the following variables applied:
When you trigger a run through the command line, Terraform Cloud applies the following variables:
143
152
144
-
-**Run-Specific:**`replicas` from the command line. That means `replicas` equals `9` for this run. Variables set from the command line take precedence over all other values, including the run-specific `TF_VAR_replicas` value set in your local environment.
153
+
-**1_Variable_Set:**`REGION`. For this run, `REGION` equals `us-east-1`, overwriting the value in all other run-specific, workspace-specific, and variable set same key variables.
154
+
155
+
-**Run-Specific:**`replicas` from the command line. That means `replicas` equals `9` for this run. If a variable set is priority, it takes precedence over all other values set with a more specific scope. Here the TF_VAR_region is "us-east-1", because the variable from the priority global 1_Variable_Set takes precedence. Without priority variable sets, variables set from the command line take precedence over all other values, including the run-specific `TF_VAR_replicas` value set in your local environment.
145
156
146
157
-**Workspace-Specific:**`VAR1`. For this run, `VAR1` equals `h`, overwriting the value in A_Variable_Set.
147
158
@@ -152,3 +163,15 @@ When you trigger a run through the command line, Terraform Cloud applies the fol
152
163
-**C_Variable_Set:**`KEY2`. For this run, `KEY2` equals `c`. This is a global variable set with no overwritten values.
153
164
154
165

166
+
167
+
168
+
## Precedence with Priority Variable Sets
169
+
170
+
You can select to prioritize all values of the variables in a variable set.
171
+
When a variable set is priority, the values take precedence over any variables with the same key set at a more specific scope.
172
+
173
+
For example, variables in a priority global variable set would take precedence over all variables with the same key in a priority project or workspace scoped variable set. Variables in a priority variable set will take precedence over any variables with the same key set through the CLI on a run.
174
+
175
+
If two priority variable sets with the same scope include the same variable key, Terraform Cloud will determine precedence by the alphabetical order of the variable sets' names.
176
+
177
+
While a priority variable set can enforce that Terraform variables use designated values, it does not guarantee that the configuration uses the variable. A user can still directly modify the Terraform configuration to remove usage of a variable and replace it with a hard-coded value. For stricter enforcement, we recommend using policy checks or run tasks.
Copy file name to clipboardexpand all lines: website/docs/cloud-docs/workspaces/variables/managing-variables.mdx
+7
Original file line number
Diff line number
Diff line change
@@ -148,6 +148,13 @@ To overwrite a variable from a variable set, [create a new workspace-specific va
148
148
149
149
Variables within a variable set can also automatically overwrite variables with the same key in other variable sets applied to the same workspace. Though variable sets are created for the organization, these overwrites occur within each workspace. Refer to [variable precedence](/terraform/cloud-docs/workspaces/variables#precedence) for more details.
150
150
151
+
## Priority Variable Sets
152
+
153
+
The values in priority variable sets overwrite any variables with the same key set at more specific scopes. This includes variables set using command line flags, or through`.*auto.tfvars` and `terraform.tfvars` files.
154
+
155
+
It is still possible for a user to directly modify the Terraform configuration and remove usage of a variable and replace it with a hard coded value. If you are looking for stricter enforcement than this, we recommend using policy checks or run tasks.
156
+
Refer to [variable precedence](/terraform/cloud-docs/workspaces/variables#precedence-with-priority-variable-sets) for more details.
157
+
151
158
## Variable Values and Format
152
159
153
160
The limits, allowable values, and required format are the same for both workspace-specific variables and variable sets.
0 commit comments