import os import sys from utils.helm import deploy_chart, gen_chart_tarball from utils.logger import logger import yaml UNIT_TEST = os.getenv("UNIT_TEST", 0) def register_sut(st_config, resource_name, **kwargs): st_config_values = st_config.get("values", {}) docker_image = st_config_values["docker_image"] image_pull_policy = st_config_values["image_pull_policy"] chart_tar_fp, chart_values = gen_chart_tarball(docker_image, image_pull_policy) sut_service_name, _ = deploy_chart( resource_name, int(os.getenv("readiness_timeout", 60 * 3)), chart_fileobj=chart_tar_fp, extra_values=st_config_values, restart_count_limit=int(os.getenv('restart_count', 3)), ) chart_tar_fp.close() sut_service_port = str(chart_values["service"]["port"]) return "ws://{}:{}".format(sut_service_name, sut_service_port) def start_server(submit_config_filepath: str, language: str): resource_name = "model-server" # 读取提交配置 & 修改配置信息 & 启动被测服务 with open(submit_config_filepath, "r") as fp: st_config = yaml.safe_load(fp) from utils.helm import resource_check if language == "zh": image = "harbor-contest.4pd.io/yuxiaojie/judge_flow/asr-live-iluvatar/asr_engine_zh_semantic:contest-v0" elif language == "en": image = "harbor-contest.4pd.io/yuxiaojie/judge_flow/asr-live-iluvatar/asr_engine_en_semantic:contest-v0" else: image = "" st_config["values"] = resource_check(st_config.get("values", {}), image) sut_url = register_sut(st_config, resource_name) print(sut_url) return sut_url if __name__ == '__main__': start_server("/Users/yu/Documents/code-work/asr-live-iluvatar/script/config.yaml")