@@ -51,10 +51,18 @@ def remove(self, port, protocol):
5151 self .ports = ports
5252 return True , ""
5353
54+ @property
55+ def addresses (self ):
56+ data = self .scheduler ().gateways .get (self .app .id , self .name , ignore_exception = True )
57+ if data .status_code != 200 :
58+ return []
59+ addresses = data .json ()["status" ].get ("addresses" , [])
60+ return addresses
61+
5462 @property
5563 def listeners (self ):
56- listeners = []
5764 auto_tls = self .app .tls_set .latest ().certs_auto_enabled
65+ listeners = []
5866 domains = list (self ._get_tls_domain (auto_tls ))
5967 for item in self .ports :
6068 port , protocol = item ["port" ], item ["protocol" ]
@@ -82,34 +90,23 @@ def listeners(self):
8290 })
8391 return listeners
8492
85- @property
86- def addresses (self ):
87- data = self .scheduler ().gateways .get (self .app .id , self .name , ignore_exception = True )
88- if data .status_code != 200 :
89- return []
90- addresses = data .json ()["status" ].get ("addresses" , [])
91- return addresses
92-
9393 def refresh_to_k8s (self ):
94+ kwargs = {"listeners" : self .listeners , "gateway_class" : settings .GATEWAY_CLASS }
95+ if self .app .tls_set .latest ().certs_auto_enabled :
96+ kwargs ["annotations" ] = {"cert-manager.io/issuer" : self .app .id }
9497 try :
9598 try :
9699 data = self .scheduler ().gateways .get (self .app .id , self .name ).json ()
97- if len (self .listeners ) > 0 :
98- self .scheduler ().gateways .patch (self .app .id , self .name , ** {
99- "listeners" : self .listeners ,
100- "gateway_class" : settings .GATEWAY_CLASS ,
101- "version" : data ["metadata" ]["resourceVersion" ],
102- })
100+ if len (kwargs ["listeners" ]) > 0 :
101+ kwargs ["version" ] = data ["metadata" ]["resourceVersion" ]
102+ self .scheduler ().gateways .patch (self .app .id , self .name , ** kwargs )
103103 else :
104104 logger .debug ("delete k8s resource when listeners are empty" )
105105 self .scheduler ().gateways .delete (
106106 self .app .id , self .name , ignore_exception = True )
107107 except KubeException :
108- if len (self .listeners ) > 0 :
109- self .scheduler ().gateways .create (self .app .id , self .name , ** {
110- "listeners" : self .listeners ,
111- "gateway_class" : settings .GATEWAY_CLASS ,
112- })
108+ if len (kwargs ["listeners" ]) > 0 :
109+ self .scheduler ().gateways .create (self .app .id , self .name , ** kwargs )
113110 else :
114111 logger .debug ("skip creating k8s resource when listeners are empty" )
115112 except KubeException as e :
0 commit comments