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 )
1011from 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+ )
0 commit comments