Skip to content

Commit 95bc4e0

Browse files
committed
feat(terraform): add firewalls to nodes
1 parent 39d112a commit 95bc4e0

3 files changed

Lines changed: 77 additions & 0 deletions

File tree

contour/overlay/envoy-service.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ metadata:
44
name: envoy
55
namespace: projectcontour
66
annotations:
7+
kubernetes.digitalocean.com/firewall-managed: "true"
78
service.beta.kubernetes.io/do-loadbalancer-protocol: "tcp"
89
service.beta.kubernetes.io/do-loadbalancer-http2-ports: "80,443"
910
service.beta.kubernetes.io/do-loadbalancer-http3-ports: "443"

terraform/manifests/digitalocean-ccm.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,10 @@ spec:
6060
key: access-token
6161
- name: DO_CLUSTER_VPC_ID
6262
value: ${vpc_id}
63+
- name: PUBLIC_ACCESS_FIREWALL_NAME
64+
value: k3s-firewall
65+
- name: PUBLIC_ACCESS_FIREWALL_TAGS
66+
value: k3s
6367
---
6468
apiVersion: v1
6569
kind: ServiceAccount

terraform/networking.tf

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,75 @@ resource "digitalocean_vpc" "vpc" {
22
name = "k3s-testing"
33
region = var.region
44
}
5+
6+
resource "digitalocean_firewall" "control_plane" {
7+
name = "k3s-control-plane"
8+
9+
droplet_ids = [digitalocean_droplet.control_plane.id]
10+
11+
inbound_rule {
12+
protocol = "tcp"
13+
port_range = "6443"
14+
source_tags = ["agent"]
15+
}
16+
17+
inbound_rule {
18+
protocol = "tcp"
19+
port_range = "10250"
20+
source_tags = ["k3s"]
21+
}
22+
23+
inbound_rule {
24+
protocol = "udp"
25+
port_range = "8472"
26+
source_tags = ["k3s"]
27+
}
28+
29+
inbound_rule {
30+
protocol = "tcp"
31+
port_range = "22"
32+
source_addresses = ["0.0.0.0/0", "::/0"]
33+
}
34+
35+
dynamic "outbound_rule" {
36+
for_each = ["tcp", "udp"]
37+
content {
38+
protocol = outbound_rule.value
39+
port_range = "1-65535"
40+
destination_addresses = ["0.0.0.0/0", "::/0"]
41+
}
42+
}
43+
}
44+
45+
resource "digitalocean_firewall" "agent" {
46+
name = "k3s-agent"
47+
48+
droplet_ids = [for droplet in digitalocean_droplet.agent : droplet.id]
49+
50+
inbound_rule {
51+
protocol = "tcp"
52+
port_range = "10250"
53+
source_tags = ["k3s"]
54+
}
55+
56+
inbound_rule {
57+
protocol = "udp"
58+
port_range = "8472"
59+
source_tags = ["k3s"]
60+
}
61+
62+
inbound_rule {
63+
protocol = "tcp"
64+
port_range = "22"
65+
source_addresses = ["0.0.0.0/0", "::/0"]
66+
}
67+
68+
dynamic "outbound_rule" {
69+
for_each = ["tcp", "udp"]
70+
content {
71+
protocol = outbound_rule.value
72+
port_range = "1-65535"
73+
destination_addresses = ["0.0.0.0/0", "::/0"]
74+
}
75+
}
76+
}

0 commit comments

Comments
 (0)