66 lines
2.5 KiB
Python
66 lines
2.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
import os
|
|
import sys
|
|
|
|
from utils.helm import deploy_chart, gen_chart_tarball
|
|
from utils.logger import logger
|
|
|
|
|
|
def register_sut(st_config, resource_name, **kwargs):
|
|
|
|
job_id = "".join([c for c in str(os.getenv("JOB_ID", -1)) if c.isnumeric()])
|
|
|
|
docker_image = "10.255.143.18:5000/speaker_identification:wo_model_v0"
|
|
#if "docker_image" in st_config and st_config["docker_image"]:
|
|
st_config_values = st_config.get("values", {})
|
|
#docker_image = st_config["docker_image"]
|
|
docker_image = "10.255.143.18:5000/speaker_identification:wo_model_v0"
|
|
chart_tar_fp, chart_values = gen_chart_tarball(docker_image)
|
|
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()
|
|
if st_config_values is not None and "service" in st_config_values and "port" in st_config_values["service"]:
|
|
sut_service_port = str(st_config_values["service"]["port"])
|
|
else:
|
|
sut_service_port = str(chart_values["service"]["port"])
|
|
return "ws://{}:{}".format(sut_service_name, sut_service_port)
|
|
|
|
|
|
"""
|
|
elif "chart_repo" in st_config:
|
|
logger.info(f"正在使用 helm-chart 配置,内容为 {st_config}")
|
|
chart_repo = st_config.get("chart_repo", None)
|
|
chart_name = st_config.get("chart_name", None)
|
|
chart_version = st_config.get("chart_version", None)
|
|
if chart_repo is None or chart_name is None or chart_version is None:
|
|
logger.error("chart_repo, chart_name, chart_version cant be none")
|
|
logger.info(f"{chart_repo} {chart_name} {chart_version}")
|
|
chart_str = os.path.join(chart_repo, chart_name) + ':' + chart_version
|
|
|
|
st_cfg_values = st_config.get('values', {})
|
|
st_config["values"] = st_cfg_values
|
|
|
|
sut_service_name, _ = deploy_chart(
|
|
resource_name,
|
|
600,
|
|
chart_str=chart_str,
|
|
extra_values=st_cfg_values,
|
|
)
|
|
sut_service_name = f"asr-{job_id}"
|
|
if st_cfg_values is not None and 'service' in st_cfg_values and 'port' in st_cfg_values['service']:
|
|
sut_service_port = str(st_cfg_values['service']['port'])
|
|
else:
|
|
sut_service_port = '80'
|
|
return 'ws://%s:%s' % (sut_service_name, sut_service_port)
|
|
else:
|
|
logger.error("配置信息错误,缺少 docker_image 属性")
|
|
#sys.exit(-1)
|
|
|
|
|
|
"""
|