Skip to content

Commit aa4e5c6

Browse files
mayuthombreJoshArmi
authored andcommitted
provisioned ssl cert. configured https proxy and http redirect
1 parent a766064 commit aa4e5c6

File tree

3 files changed

+68
-65
lines changed

3 files changed

+68
-65
lines changed

Makefile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,3 +174,7 @@ gcp-destroy-grafana:
174174
gcp-destroy-all:
175175
@echo "\n\n---GCP-DESTROY-ALL---\n"
176176
cd infrastructure/gcp;cdktf destroy gcp_base gcp_core gcp_grafana
177+
178+
local-gcp-plan: gcp-plan-base gcp-plan-core
179+
180+
local-gcp-deploy: gcp-deploy-base gcp-deploy-core

infrastructure/gcp/lb_component.py

Lines changed: 62 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
compute_region_network_endpoint_group,
66
compute_target_http_proxy,
77
compute_url_map,
8-
compute_managed_ssl_certificate
8+
compute_managed_ssl_certificate,
9+
compute_target_https_proxy,
910
)
1011
from constructs import Construct
1112

@@ -18,6 +19,7 @@ def __init__(
1819
project_id: str,
1920
location: str,
2021
name_prefix: str,
22+
DOMAIN_NAME: str,
2123
):
2224
super().__init__(scope, id)
2325

@@ -26,7 +28,7 @@ def __init__(
2628
compute_region_network_endpoint_group.ComputeRegionNetworkEndpointGroup(
2729
self,
2830
"function_neg",
29-
name=name_prefix + "-grafana-lb-neg",
31+
name=name_prefix+"-grafana-lb-neg",
3032
project=project_id,
3133
region=location,
3234
network_endpoint_type="SERVERLESS",
@@ -39,18 +41,18 @@ def __init__(
3941
# self.health_check = compute_health_check.ComputeHealthCheck(
4042
# self,
4143
# "health_check",
42-
# name=name_prefix + "-grafana-lb-health-check",
44+
# name=name_prefix+"-grafana-lb-health-check",
4345
# project=project_id,
44-
# http_health_check={
45-
# "port": 80
46+
# ssl_health_check={
47+
# "port": 443
4648
# },
4749
# )
4850

4951
# Create Backend service network endpoint
5052
self.backend_service = compute_backend_service.ComputeBackendService(
5153
self,
5254
"backend_service",
53-
name=name_prefix + "-grafana-lb-backend",
55+
name=name_prefix+"-grafana-lb-backend",
5456
project=project_id,
5557
timeout_sec=30,
5658
connection_draining_timeout_sec=300,
@@ -63,88 +65,83 @@ def __init__(
6365
self.global_address = compute_global_address.ComputeGlobalAddress(
6466
self,
6567
"global_address",
66-
name=f"{name_prefix}-grafana-ip",
68+
name=name_prefix+"-grafana-ip",
6769
project=project_id,
6870
)
6971

7072
# Create SSL certificate
71-
# self.certificate = compute_managed_ssl_certificate.ComputeManagedSslCertificate(
72-
# self,
73-
# "ssl_certificate",
74-
# name=name_prefix+"-ssl-certificate",
75-
# project=project_id,
76-
# type="MANAGED",
77-
# managed={
78-
# "domains": ["flightcontroller.apacsquadzero.io"]
79-
# }
80-
# )
73+
self.certificate = compute_managed_ssl_certificate.ComputeManagedSslCertificate(
74+
self,
75+
"ssl_certificate",
76+
name=name_prefix+"-ssl-certificate",
77+
project=project_id,
78+
type="MANAGED",
79+
managed={
80+
"domains": [str(DOMAIN_NAME),]
81+
}
82+
)
8183

8284
# Create URL map
83-
self.url_map = compute_url_map.ComputeUrlMap(
85+
self.default = compute_url_map.ComputeUrlMap(
8486
self,
85-
"urlmap",
86-
name=name_prefix + "-grafana-lb-urlmap",
87-
default_service=self.backend_service.id,
87+
"default-urlmap",
88+
name=name_prefix+"-grafana-default-urlmap",
89+
default_service=self.backend_service.self_link,
8890
project=project_id,
8991
)
9092

91-
# self.http_redirect = compute_url_map.ComputeUrlMap(
92-
# self,
93-
# "http_redirect",
94-
# name=name+"-http-redirect",
95-
# project=project_id,
96-
# default_url_redirect={
97-
# "https_redirect": True,
98-
# "strip_query": False,
99-
# }
100-
# )
101-
102-
# # Create target proxy
103-
# self.targetproxy = compute_target_https_proxy.ComputeTargetHttpsProxy(
104-
# self,
105-
# "target_proxy",
106-
# name=name+"-target",
107-
# url_map=self.url_map.id,
108-
# project=project_id,
109-
# ssl_certificates=[self.certificate.id],
110-
# )
93+
self.https_redirect = compute_url_map.ComputeUrlMap(
94+
self,
95+
"https_redirect",
96+
name=name_prefix+"-https-redirect",
97+
project=project_id,
98+
default_url_redirect={
99+
"https_redirect": True,
100+
"strip_query": False,
101+
"redirect_response_code": "MOVED_PERMANENTLY_DEFAULT"
102+
}
103+
)
111104

112-
# self.redirectproxy = compute_target_http_proxy.ComputeTargetHttpProxy(
113-
# self,
114-
# "redirect_proxy",
115-
# name=name+"http-redirect",
116-
# url_map=self.http_redirect.id,
117-
# project=project_id,
118-
# )
105+
# HTTPS proxy when ssl is true
106+
self.https_proxy = compute_target_https_proxy.ComputeTargetHttpsProxy(
107+
self,
108+
"https_proxy",
109+
name=name_prefix+"-grafana-https-proxy",
110+
url_map=self.default.self_link,
111+
project=project_id,
112+
ssl_certificates=[self.certificate.id],
113+
)
119114

120-
self.redirect_proxy = compute_target_http_proxy.ComputeTargetHttpProxy(
115+
# HTTP Proxy when http forwarding is true
116+
self.http_proxy = compute_target_http_proxy.ComputeTargetHttpProxy(
121117
self,
122-
"redirect_proxy",
123-
name=name_prefix + "-grafana-lbhttp-redirect",
124-
url_map=self.url_map.id,
118+
"http_proxy",
119+
name=name_prefix+"-grafana-http-proxy",
120+
url_map=self.https_redirect.self_link,
125121
project=project_id,
126122
)
127123

128124
# Create global forwarding rule
129-
self.forwarding_rule = (
125+
self.http_forwarding = (
130126
compute_global_forwarding_rule.ComputeGlobalForwardingRule(
131127
self,
132-
"forwarding_rule",
133-
name=f"{name_prefix}-grafana-lb",
134-
target=self.redirect_proxy.id,
128+
"http_forwarding",
129+
name=name_prefix+"-grafana-http",
130+
target=self.http_proxy.self_link,
135131
port_range="80",
136132
project=project_id,
137133
load_balancing_scheme="EXTERNAL_MANAGED",
138134
ip_address=self.global_address.address,
139135
)
140136
)
141137

142-
# self.redirect_rule = compute_global_forwarding_rule.ComputeGlobalForwardingRule(
143-
# self,
144-
# "redirect_rule",
145-
# name=name_prefix+"httpredirect",
146-
# target=self.redirectproxy.id,
147-
# port_range="80",
148-
# project=project_id,
149-
# ip_address=self.forwarding_rule.ip_address,
150-
# )
138+
self.https_forwarding = compute_global_forwarding_rule.ComputeGlobalForwardingRule(
139+
self,
140+
"https_forwarding",
141+
name=name_prefix+"-grafana-https",
142+
target=self.https_proxy.self_link,
143+
port_range="443",
144+
project=project_id,
145+
ip_address=self.global_address.address,
146+
load_balancing_scheme="EXTERNAL_MANAGED",
147+
)

infrastructure/gcp/main.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
NAME_PREFIX = "flight-controller"
2323
EVENT_TABLE_NAME = "event_sourcing_table"
2424
METRIC_TABLE_NAME = "metric_sourcing_table"
25+
DOMAIN_NAME = "flightcontroller.apacsquadzero.io"
2526

2627
# GCP Base Stack
2728
class GcpBase(TerraformStack):
@@ -137,6 +138,7 @@ def __init__(
137138
PROJECT_ID,
138139
LOCATION,
139140
NAME_PREFIX,
141+
DOMAIN_NAME
140142
)
141143
# self.grafana_workspace_id = lb_component.global_address.address
142144

0 commit comments

Comments
 (0)