diff --git a/infra/vultr-kubernetes/dev/find-server.py b/infra/vultr-kubernetes/dev/find-server.py index c9d416f..dd07647 100644 --- a/infra/vultr-kubernetes/dev/find-server.py +++ b/infra/vultr-kubernetes/dev/find-server.py @@ -8,7 +8,7 @@ def get_args() -> Namespace: prog="Cluster Search Thing", description="General utility for finding resources for game server bot" ) - games = {"reflex", "minecraft"} + games = {"health", "reflex", "minecraft"} parser.add_argument('-g', '--game', required=False, choices=games) admin = {"health"} @@ -21,11 +21,19 @@ def k8s_api(config_path: str) -> client.api.core_v1_api.CoreV1Api: def get_admin_service_details(args: ArgumentParser, api: client.api.core_v1_api.CoreV1Api): print('admin thing requested', args.admin) + services = api.list_service_for_all_namespaces(label_selector=f'app={args.admin}') + if len(services.items) == 0: + print(f'Unable to find {args.admin} amongst the admin-services') + return + + port = services.items[0].spec.ports[0].port + node_ips = list(filter(lambda a: a.type == 'ExternalIP', api.list_node().items[0].status.addresses)) + ipv4 = list(filter(lambda item: not re.match('[\d\.]{3}\d', item.address), node_ips))[0].address + ipv6 = list(filter(lambda item: re.match('[\d\.]{3}\d', item.address), node_ips))[0].address + + print(f'{args.admin} --> {ipv4}:{port} ~~> {ipv6}:{port}') def get_game_server_ip(args: ArgumentParser, api: client.api.core_v1_api.CoreV1Api): - pods = api.list_pod_for_all_namespaces(label_selector=f'app={args.game}') - node_name = pods.items[0].spec.node_name - services = api.list_service_for_all_namespaces(label_selector=f'app={args.game}') port = services.items[0].spec.ports[0].port