forked from hashicorp/tfc-getting-started
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.tf
More file actions
134 lines (108 loc) · 3.41 KB
/
main.tf
File metadata and controls
134 lines (108 loc) · 3.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# Copyright IBM Corp. 2020, 2024
# SPDX-License-Identifier: MPL-2.0
# The following configuration uses a provider which provisions [fake] resources
# to a fictitious cloud vendor called "Fake Web Services". Configuration for
# the fakewebservices provider can be found in provider.tf.
#
# After running the setup script (./scripts/setup.sh), feel free to change these
# resources and 'terraform apply' as much as you'd like! These resources are
# purely for demonstration and created in HCP Terraform, scoped to your HCP Terraform
# user account.
#
# To review the provider and documentation for the available resources and
# schemas, see: https://registry.terraform.io/providers/hashicorp/fakewebservices
#
# If you're looking for the configuration for the remote backend, you can find that
# in backend.tf.
module "fakewebservice" {
source = "./modules/fakewebservice"
vpc_name = "Primary VPC"
vpc_cidr_block = "0.0.0.0/1"
server_count = 3
server_type = "t2.micro"
lb_name = "Primary Load Balancer"
db_name = "Production DB"
db_size = 256
}
# Moved blocks to indicate resources moved to the module
moved {
from = fakewebservices_vpc.primary_vpc
to = module.fakewebservice.fakewebservices_vpc.primary_vpc
}
moved {
from = fakewebservices_server.servers
to = module.fakewebservice.fakewebservices_server.servers
}
resource "fakewebservices_server" "server-3" {
name = "Server 3"
type = "t2.macro"
}
resource "fakewebservices_server" "server-4" {
name = "Server 4"
type = "t2.macro"
}
resource "fakewebservices_server" "server-5" {
name = "Server 5"
type = "t2.small"
}
resource "fakewebservices_server" "server-6" {
name = "Server 6"
type = "t2.small"
}
moved {
from = fakewebservices_load_balancer.primary_lb
to = module.fakewebservice.fakewebservices_load_balancer.primary_lb
}
moved {
from = fakewebservices_database.prod_db
to = module.fakewebservice.fakewebservices_database.prod_db
}
resource "fakewebservices_database" "staging_db" {
name = "Staging DB"
size = 128
}
resource "fakewebservices_load_balancer" "f5" {
name = "F5 Load Balancer"
servers = [fakewebservices_server.server-3.name, fakewebservices_server.server-4.name, fakewebservices_server.server-5.name, fakewebservices_server.server-6.name]
}
resource "fakewebservices_load_balancer" "secondary_lb" {
name = "Secondary Load Balancer"
servers = [fakewebservices_server.server-5.name, fakewebservices_server.server-6.name]
}
# Outputs from the module
output "vpc_id" {
value = module.fakewebservice.vpc_id
}
output "vpc_name" {
value = module.fakewebservice.vpc_name
}
output "server_names" {
value = module.fakewebservice.server_names
}
output "server_ids" {
value = module.fakewebservice.server_ids
}
output "load_balancer_name" {
value = module.fakewebservice.load_balancer_name
}
output "load_balancer_id" {
value = module.fakewebservice.load_balancer_id
}
output "database_name" {
value = module.fakewebservice.database_name
}
output "database_id" {
value = module.fakewebservice.database_id
}
output "staging_database_name" {
value = fakewebservices_database.staging_db.name
}
output "staging_database_id" {
value = fakewebservices_database.staging_db.id
}
output "secondary_load_balancer_name" {
value = fakewebservices_load_balancer.secondary_lb.name
}
output "secondary_load_balancer_id" {
value = fakewebservices_load_balancer.secondary_lb.id
}