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
- Add generation field to heroku_space resource with cedar/fir validation
- Implement shield feature validation blocking Fir+Shield combinations
- Add comprehensive CRUD validation (Create errors, Read warnings)
- Enhance feature matrix with complete space feature coverage
- Add extensive test suite: 24 tests including acceptance tests
- Update documentation with generation examples and guidance
- Maintain backward compatibility with cedar default
- Foundation for incremental space feature validation
Resolves core deliverables for Fir Private Space compatibility.
Generated shield spaces require cedar generation.
ForceNew ensures generation cannot be changed after creation.
Copy file name to clipboardExpand all lines: docs/resources/space.md
+25-6Lines changed: 25 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,24 +10,41 @@ description: |-
10
10
11
11
Provides a Heroku Private Space resource for running apps in isolated, highly available, secure app execution environments.
12
12
13
+
Heroku Private Spaces support two generations:
14
+
15
+
***Cedar** (default): The original generation supporting all Private Space features including Shield spaces
16
+
***Fir**: The next-generation platform with enhanced capabilities for Cloud Native Buildpacks (CNB), but with some feature limitations
17
+
18
+
~> **Note:** The `generation` parameter cannot be changed after space creation. Choose carefully based on your application requirements.
19
+
13
20
## Example Usage
14
21
15
22
A Heroku "team" was originally called an "organization", and that is still
16
23
the identifier used in this resource.
17
24
18
25
```hcl-terraform
19
-
// Create a new Heroku space
20
-
resource "heroku_space" "default" {
21
-
name = "test-space"
26
+
// Create a new Cedar generation space (default)
27
+
resource "heroku_space" "cedar_space" {
28
+
name = "test-cedar-space"
29
+
organization = "my-company"
30
+
region = "virginia"
31
+
shield = true // Cedar supports shield spaces
32
+
}
33
+
34
+
// Create a new Fir generation space
35
+
resource "heroku_space" "fir_space" {
36
+
name = "test-fir-space"
22
37
organization = "my-company"
23
38
region = "virginia"
39
+
generation = "fir"
40
+
// Note: Fir generation does not support shield spaces
24
41
}
25
42
26
43
// Create a new Heroku app in test-space, same region
27
44
resource "heroku_app" "default" {
28
45
name = "test-app"
29
46
region = "virginia"
30
-
space = heroku_space.default.id
47
+
space = heroku_space.cedar_space.id
31
48
organization = {
32
49
name = "my-company"
33
50
}
@@ -40,12 +57,13 @@ The following arguments are supported:
40
57
41
58
*`name` - (Required) The name of the Private Space.
42
59
*`organization` - (Required) The name of the Heroku Team which will own the Private Space.
60
+
*`generation` - (Optional) The generation of the Private Space. Valid values are `cedar` and `fir`. Defaults to `cedar` for backward compatibility. Cannot be changed after creation.
43
61
*`cidr` - (Optional) The RFC-1918 CIDR the Private Space will use.
44
62
It must be a /16 in 10.0.0.0/8, 172.16.0.0/12 or 192.168.0.0/16
45
63
*`data_cidr` - (Optional) The RFC-1918 CIDR that the Private Space will use for the Heroku-managed peering connection
46
-
that’s automatically created when using Heroku Data add-ons. It must be between a /16 and a /20
64
+
that's automatically created when using Heroku Data add-ons. It must be between a /16 and a /20
47
65
*`region` - (Optional) provision in a specific [Private Spaces region](https://devcenter.heroku.com/articles/regions#viewing-available-regions).
48
-
*`shield` - (Optional) provision as a [Shield Private Space](https://devcenter.heroku.com/articles/private-spaces#shield-private-spaces).
66
+
*`shield` - (Optional) provision as a [Shield Private Space](https://devcenter.heroku.com/articles/private-spaces#shield-private-spaces). Note: Shield spaces are only supported for `cedar` generation.
49
67
50
68
## Attributes Reference
51
69
@@ -54,6 +72,7 @@ The following attributes are exported:
54
72
*`id` - The ID (UUID) of the space.
55
73
*`name` - The space's name.
56
74
*`organization` - The space's Heroku Team.
75
+
*`generation` - The space's generation (`cedar` or `fir`).
0 commit comments