Skip to content

Commit 46e55ae

Browse files
authored
Merge pull request #310 from terraform-google-modules/ludo-v4.1.0
Update changelog for v5.0.0, add migration doc for fabric-project
2 parents 9d07ccd + f587181 commit 46e55ae

File tree

2 files changed

+60
-1
lines changed

2 files changed

+60
-1
lines changed

CHANGELOG.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,15 @@ Extending the adopted spec, each change should have a link to its corresponding
88

99
## [Unreleased]
1010

11+
## [5.0.0] - 2019-11-04
12+
13+
5.0.0 is a backwards incompatible release for `modules/fabric-project`. See the [upgrade guide](./docs/upgrading_to_fabric_project_v5.0.md) for details.
14+
15+
### Fixed
16+
17+
- Manage service activation in `modules/fabric-project` with a resource instead of relying on `modules/project-services`, so that output dependency on services works again. Fixes [#308]. [#309]
18+
19+
1120
## [4.0.1] - 2019-10-30
1221

1322
### Fixed
@@ -217,7 +226,8 @@ Extending the adopted spec, each change should have a link to its corresponding
217226
### ADDED
218227
- This is the initial release of the Project Factory Module.
219228

220-
[Unreleased]: https://github.com/terraform-google-modules/terraform-google-project-factory/compare/v4.0.1...HEAD
229+
[Unreleased]: https://github.com/terraform-google-modules/terraform-google-project-factory/compare/v5.0.0...HEAD
230+
[5.0.0]: https://github.com/terraform-google-modules/terraform-google-project-factory/compare/v4.0.1...v5.0.0
221231
[4.0.1]: https://github.com/terraform-google-modules/terraform-google-project-factory/compare/v4.0.0...v4.0.1
222232
[4.0.0]: https://github.com/terraform-google-modules/terraform-google-project-factory/compare/v3.3.1...v4.0.0
223233
[3.3.1]: https://github.com/terraform-google-modules/terraform-google-project-factory/compare/v3.3.0...v3.3.1
@@ -247,6 +257,8 @@ Extending the adopted spec, each change should have a link to its corresponding
247257
[0.2.1]: https://github.com/terraform-google-modules/terraform-google-project-factory/compare/v0.2.0...v0.2.1
248258
[0.2.0]: https://github.com/terraform-google-modules/terraform-google-project-factory/compare/v0.1.0...v0.2.0
249259

260+
[#309]: https://github.com/terraform-google-modules/terraform-google-project-factory/pull/309
261+
[#308]: https://github.com/terraform-google-modules/terraform-google-project-factory/issues/308
250262
[#303]: https://github.com/terraform-google-modules/terraform-google-project-factory/pull/303
251263
[#288]: https://github.com/terraform-google-modules/terraform-google-project-factory/pull/288
252264
[#282]: https://github.com/terraform-google-modules/terraform-google-project-factory/issues/282
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Upgrading to the Fabric Project module v5.0
2+
3+
**This document only applies to the `fabric-project` module. If you use the main module or other submodules, you can stop reading now.**
4+
5+
The v5.0 release of the `fabric-project` module is a backwards incompatible release, changing how Google Project Services (APIs) are managed.
6+
7+
## Migration instructions
8+
9+
First, ensure there are no pending changes to infrastructure by applying existing code.
10+
11+
```shell
12+
terraform apply
13+
```
14+
15+
Backup Terraform state for safety.
16+
17+
```shell
18+
terraform state pull >terraform-state.json
19+
```
20+
21+
Update the `fabric-project` version to 5.0.0, run `terraform init`, then identify project service resources to move.
22+
23+
```shell
24+
tf state list |grep module.project_services.google_project_service | sed 's/\[.*$//' |uniq
25+
```
26+
27+
The command will output a list of resources which will need to be moved in Terraform state:
28+
29+
```
30+
module.audit-project.module.project_services.google_project_service.project_services
31+
module.service-project.module.project_services.google_project_service.project_services
32+
```
33+
34+
For each of the above resources, issue a `terraform state mv` command, where the destination resource omits `module.project_services`. Using the example above:
35+
36+
```shell
37+
terraform state mv \
38+
module.audit-project.module.project_services.google_project_service.project_services \
39+
module.audit-project.google_project_service.project_services
40+
terraform state mv \
41+
module.service-project.module.project_services.google_project_service.project_services \
42+
module.service-project.google_project_service.project_services
43+
```
44+
45+
Once done, test that `terraform plan` won't create or destroy any `google_project_service` resource, then delete the `terraform-state.json` file you saved earlier.
46+
47+
In case of issues, revert the module version, run `terraform init`, then revert to the known working Terraform state version with `terraform state push terraform-state.json`.

0 commit comments

Comments
 (0)