This repository has been archived by the owner on Jun 3, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 7
/
main.tf
57 lines (48 loc) · 1.47 KB
/
main.tf
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
## Managed By : CloudDrove
##Description : This Script is used to create firewall.
## Copyright @ CloudDrove. All Right Reserved.
#Module : Label
#Description : This terraform module is designed to generate consistent label names and
# tags for resources. You can use terraform-labels to implement a strict
# naming convention.
module "labels" {
source = "clouddrove/labels/digitalocean"
#version = "0.15.0"
name = var.name
environment = var.environment
label_order = var.label_order
}
locals {
firewall_count = var.enable_firewall == true ? 1 : 0
}
#Module : Firewall
#Description : Provides a DigitalOcean Cloud Firewall resource. This can be used to create, modify, and delete Firewalls.
resource "digitalocean_firewall" "default" {
count = local.firewall_count
name = module.labels.id
droplet_ids = var.droplet_ids
dynamic "inbound_rule" {
iterator = port
for_each = var.allowed_ports
content {
port_range = port.value
protocol = var.protocol
source_addresses = var.allowed_ip
}
}
outbound_rule {
protocol = "tcp"
port_range = "1-65535"
destination_addresses = ["0.0.0.0/0", "::/0"]
}
outbound_rule {
protocol = "udp"
port_range = "1-65535"
destination_addresses = ["0.0.0.0/0", "::/0"]
}
tags = [
module.labels.name,
module.labels.environment,
module.labels.managedby
]
}