Skip to content

Commit 3d3c3c5

Browse files
committed
Refactor terraform modules
1 parent 5816176 commit 3d3c3c5

File tree

7 files changed

+121
-65
lines changed

7 files changed

+121
-65
lines changed

deployment/live/gcp/test/terragrunt.hcl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
terraform {
2-
source = "${get_repo_root()}/deployment/modules/gcp//storage"
2+
source = "${get_repo_root()}/deployment/modules/gcp//conformance"
33
}
44

55
locals {
6-
project_id = get_env("GOOGLE_PROJECT", "phboneff-dev")
7-
location = get_env("GOOGLE_REGION", "us-central1")
8-
base_name = get_env("TESSERA_BASE_NAME", "tessera-staticct")
6+
project_id = get_env("GOOGLE_PROJECT", "phboneff-dev")
7+
location = get_env("GOOGLE_REGION", "us-central1")
8+
base_name = get_env("TESSERA_BASE_NAME", "tessera-staticct")
99
}
1010

1111
inputs = local
@@ -20,7 +20,7 @@ remote_state {
2020
prefix = "terraform.tfstate"
2121

2222
gcs_bucket_labels = {
23-
name = "terraform_state_storage"
23+
name = "terraform_state_conformance"
2424
}
2525
}
2626
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
terraform {
2+
backend "gcs" {}
3+
}
4+
5+
module "storage" {
6+
source = "../storage"
7+
8+
project_id = var.project_id
9+
base_name = var.base_name
10+
location = var.location
11+
}
12+
13+
module "secretmanager" {
14+
source = "../secretmanager"
15+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
output "ecdsa_p256_public_key_id" {
2+
description = "Signer public key (P256_SHA256)"
3+
value = module.secretmanager.ecdsa_p256_public_key_id
4+
}
5+
6+
output "ecdsa_p256_private_key_id" {
7+
description = "Signer private key (P256_SHA256)"
8+
value = module.secretmanager.ecdsa_p256_private_key_id
9+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
variable "project_id" {
2+
description = "GCP project ID where the log is hosted"
3+
type = string
4+
}
5+
6+
variable "base_name" {
7+
description = "Base name to use when naming resources"
8+
type = string
9+
}
10+
11+
variable "location" {
12+
description = "Location in which to create resources"
13+
type = string
14+
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
terraform {
2+
required_providers {
3+
google = {
4+
source = "registry.terraform.io/hashicorp/google"
5+
version = "6.1.0"
6+
}
7+
}
8+
}
9+
10+
# Secret Manager
11+
12+
# ECDSA key with P256 elliptic curve. Do NOT use this in production environment.
13+
#
14+
# Security Notice
15+
# The private key generated by this resource will be stored unencrypted in your
16+
# Terraform state file. Use of this resource for production deployments is not
17+
# recommended. Instead, generate a private key file outside of Terraform and
18+
# distribute it securely to the system where Terraform will be run.
19+
#
20+
# See https://registry.terraform.io/providers/hashicorp/tls/latest/docs/resources/private_key.
21+
resource "google_project_service" "secretmanager_googleapis_com" {
22+
service = "secretmanager.googleapis.com"
23+
disable_on_destroy = false
24+
}
25+
26+
resource "tls_private_key" "sctfe_ecdsa_p256" {
27+
algorithm = "ECDSA"
28+
ecdsa_curve = "P256"
29+
}
30+
31+
resource "google_secret_manager_secret" "sctfe_ecdsa_p256_public_key" {
32+
secret_id = "sctfe-ecdsa-p256-public-key"
33+
34+
labels = {
35+
label = "sctfe-public-key"
36+
}
37+
38+
replication {
39+
auto {}
40+
}
41+
42+
depends_on = [google_project_service.secretmanager_googleapis_com]
43+
}
44+
45+
resource "google_secret_manager_secret_version" "sctfe_ecdsa_p256_public_key" {
46+
secret = google_secret_manager_secret.sctfe_ecdsa_p256_public_key.id
47+
48+
secret_data = tls_private_key.sctfe_ecdsa_p256.public_key_pem
49+
}
50+
51+
resource "google_secret_manager_secret" "sctfe_ecdsa_p256_private_key" {
52+
secret_id = "sctfe-ecdsa-p256-private-key"
53+
54+
labels = {
55+
label = "sctfe-private-key"
56+
}
57+
58+
replication {
59+
auto {}
60+
}
61+
62+
depends_on = [google_project_service.secretmanager_googleapis_com]
63+
}
64+
65+
resource "google_secret_manager_secret_version" "sctfe_ecdsa_p256_private_key" {
66+
secret = google_secret_manager_secret.sctfe_ecdsa_p256_private_key.id
67+
68+
secret_data = tls_private_key.sctfe_ecdsa_p256.private_key_pem
69+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
output "ecdsa_p256_public_key_id" {
2+
description = "Signer public key (P256_SHA256)"
3+
value = google_secret_manager_secret_version.sctfe_ecdsa_p256_public_key.id
4+
}
5+
6+
output "ecdsa_p256_private_key_id" {
7+
description = "Signer private key (P256_SHA256)"
8+
value = google_secret_manager_secret_version.sctfe_ecdsa_p256_private_key.id
9+
}

deployment/modules/gcp/storage/main.tf

Lines changed: 0 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,6 @@ resource "google_project_service" "storage_googleapis_com" {
2727
service = "storage.googleapis.com"
2828
disable_on_destroy = false
2929
}
30-
resource "google_project_service" "secretmanager_googleapis_com" {
31-
service = "secretmanager.googleapis.com"
32-
disable_on_destroy = false
33-
}
3430

3531
## Resources
3632

@@ -69,59 +65,3 @@ resource "google_spanner_database" "dedup_db" {
6965
"CREATE TABLE IDSeq (id INT64 NOT NULL, h BYTES(MAX) NOT NULL, idx INT64 NOT NULL,) PRIMARY KEY (id, h)",
7066
]
7167
}
72-
73-
# Secret Manager
74-
75-
# ECDSA key with P256 elliptic curve. Do NOT use this in production environment.
76-
#
77-
# Security Notice
78-
# The private key generated by this resource will be stored unencrypted in your
79-
# Terraform state file. Use of this resource for production deployments is not
80-
# recommended. Instead, generate a private key file outside of Terraform and
81-
# distribute it securely to the system where Terraform will be run.
82-
#
83-
# See https://registry.terraform.io/providers/hashicorp/tls/latest/docs/resources/private_key.
84-
resource "tls_private_key" "sctfe_ecdsa_p256" {
85-
algorithm = "ECDSA"
86-
ecdsa_curve = "P256"
87-
}
88-
89-
resource "google_secret_manager_secret" "sctfe_ecdsa_p256_public_key" {
90-
secret_id = "sctfe-ecdsa-p256-public-key"
91-
92-
labels = {
93-
label = "sctfe-public-key"
94-
}
95-
96-
replication {
97-
auto {}
98-
}
99-
100-
depends_on = [google_project_service.secretmanager_googleapis_com]
101-
}
102-
103-
resource "google_secret_manager_secret_version" "sctfe_ecdsa_p256_public_key" {
104-
secret = google_secret_manager_secret.sctfe_ecdsa_p256_public_key.id
105-
106-
secret_data = tls_private_key.sctfe_ecdsa_p256.public_key_pem
107-
}
108-
109-
resource "google_secret_manager_secret" "sctfe_ecdsa_p256_private_key" {
110-
secret_id = "sctfe-ecdsa-p256-private-key"
111-
112-
labels = {
113-
label = "sctfe-private-key"
114-
}
115-
116-
replication {
117-
auto {}
118-
}
119-
120-
depends_on = [google_project_service.secretmanager_googleapis_com]
121-
}
122-
123-
resource "google_secret_manager_secret_version" "sctfe_ecdsa_p256_private_key" {
124-
secret = google_secret_manager_secret.sctfe_ecdsa_p256_private_key.id
125-
126-
secret_data = tls_private_key.sctfe_ecdsa_p256.private_key_pem
127-
}

0 commit comments

Comments
 (0)