in mysqloperator/controller/innodbcluster/cluster_api.py [0:0]
def get_add_to_svc_cb(self) -> Optional[AddToSvcHandler]:
def cb(svc: Union[dict, api_client.V1Service], logger: Logger) -> None:
patch = {
"ports" : [
{
"name" : self.svc_port_name,
"port": self.port, # ToDo : should be cluster.mysql_metrics_port
"targetPort": self.port, # ToDo : should be cluster.mysql_metrics_port
}
]
}
svc_name = "n/a"
my_port_names = [port["name"] for port in patch["ports"]]
if isinstance(svc, dict):
svc_name = svc["metadata"]["name"]
# first filter out the old `port`
svc["spec"]["ports"] = [port for port in svc["spec"]["ports"] if port and get_object_name(port) not in my_port_names]
# Then add, if needed
if self.enable:
utils.merge_patch_object(svc["spec"], patch)
elif isinstance(svc, api_client.V1Service):
svc_name = svc.metadata.name
# first filter out the old `port`
svc.spec.ports = [port for port in svc.spec.ports if port and get_object_name(port) not in my_port_names]
# Then add, if needed
if self.enable:
svc.spec.ports += patch["ports"]
print(f"\t\t\t{'A' if self.enable else 'Not a'}dding port {self.svc_port_name} to Service {svc_name}")
return cb