From 312aa23c77fa7179898ed2f274c59c0f29fa1dc5 Mon Sep 17 00:00:00 2001 From: ThreadDao Date: Tue, 21 Dec 2021 16:05:08 +0800 Subject: [PATCH] [skip e2e] Delete helm deploy in scale test (#13872) Signed-off-by: ThreadDao --- tests/python_client/scale/constants.py | 6 -- tests/python_client/scale/helm_env.py | 134 ------------------------- 2 files changed, 140 deletions(-) delete mode 100644 tests/python_client/scale/helm_env.py diff --git a/tests/python_client/scale/constants.py b/tests/python_client/scale/constants.py index bdb648d097..4e51161256 100644 --- a/tests/python_client/scale/constants.py +++ b/tests/python_client/scale/constants.py @@ -4,13 +4,7 @@ IMAGE_TAG = "master-20211213-d14fff0" # tag of milvus image NAMESPACE = "chaos-testing" # namespace IF_NOT_PRESENT = "IfNotPresent" # image pullPolicy IfNotPresent ALWAYS = "Always" # image pullPolicy Always -PROXY = "proxy" # key proxy -DATA_NODE = "dataNode" # key dataNode -INDEX_NODE = "indexNode" # key indexNode -QUERY_NODE = "queryNode" # key queryNode -# my values.yaml path -MILVUS_CHART_ENV = 'MILVUS_CHART_ENV' # env of milvus chart path MILVUS_LOGS_PATH = '/tmp/milvus' # path of milvus pod logs # default scale config diff --git a/tests/python_client/scale/helm_env.py b/tests/python_client/scale/helm_env.py deleted file mode 100644 index 28aedf27a9..0000000000 --- a/tests/python_client/scale/helm_env.py +++ /dev/null @@ -1,134 +0,0 @@ -import os - -from scale import constants -from utils.util_log import test_log as log -from common import common_func as cf - - -def get_milvus_chart_env_var(var=constants.MILVUS_CHART_ENV): - """ get log path for testing """ - try: - milvus_helm_chart = os.environ[var] - return str(milvus_helm_chart) - except Exception as e: - log.error(f'Failed to get environment variables {var}, with exception {str(e)}') - - -class HelmEnv: - milvus_chart_path = get_milvus_chart_env_var() - - def __init__(self, release_name=None, **kwargs): - self.release_name = release_name if release_name else cf.gen_unique_str(constants.DEFAULT_RELEASE_PREFIX) - self.proxy = kwargs.get(constants.PROXY, 1) - self.data_node = kwargs.get(constants.DATA_NODE, 1) - self.index_node = kwargs.get(constants.INDEX_NODE, 1) - self.query_node = kwargs.get(constants.QUERY_NODE, 1) - - def helm_install_cluster_milvus(self, image_pull_policy=constants.IF_NOT_PRESENT): - """ - default deploy cluster milvus with only one xxxNode - helm install --wait --timeout 180s --set image.all.repository=milvusdb/milvus-dev --set image.all.tag=master-latest - --set cluster.enabled=true --set service.type=LoadBalancer - --set image.all=Always clu-zong . - :param image_pull_policy: image pullPolicy includes: IF_NOT_PRESENT and ALWAYS - :param kwargs: PROXY, DATA_NODE, INDEX_NODE, QUERY_NODE - :return: svc ip - """ - install_cmd = f'helm install --wait --timeout 360s ' \ - f'--set image.all.repository={constants.IMAGE_REPOSITORY} ' \ - f'--set image.all.tag={constants.IMAGE_TAG} ' \ - f'--set cluster.enabled=true ' \ - f'--set service.type=LoadBalancer ' \ - f'--set image.all.pullPolicy={image_pull_policy} ' \ - f'--set proxy.replicas={self.proxy} ' \ - f'--set dataNode.replicas={self.data_node} ' \ - f'--set indexNode.replicas={self.index_node} ' \ - f'--set queryNode.replicas={self.query_node} ' \ - f'{self.release_name} . ' - log.debug(f'install_cmd: {install_cmd}') - try: - os.system(f'cd {self.milvus_chart_path} && {install_cmd}') - except Exception: - raise Exception("Failed to deploy cluster milvus") - return self.get_service_ip() - - def helm_upgrade_cluster_milvus(self, **kwargs): - """ - scale milvus pod num by helm upgrade - when upgrading pod nums, other --set need to be the same as helm install - :param kwargs: PROXY, DATA_NODE, INDEX_NODE, QUERY_NODE - :return: None - """ - proxy = kwargs.get(constants.PROXY, self.proxy) - data_node = kwargs.get(constants.DATA_NODE, self.data_node) - index_node = kwargs.get(constants.INDEX_NODE, self.index_node) - query_node = kwargs.get(constants.QUERY_NODE, self.query_node) - upgrade_cmd = f'helm upgrade {self.release_name} . ' \ - f'--set proxy.replicas={proxy} ' \ - f'--set dataNode.replicas={data_node} ' \ - f'--set indexNode.replicas={index_node} ' \ - f'--set queryNode.replicas={query_node} ' \ - f'--reuse-values' - log.debug(f'upgrade_cmd: {upgrade_cmd}') - if os.system(f'cd {self.milvus_chart_path} && {upgrade_cmd}'): - raise Exception(f'Failed to upgrade cluster milvus with {kwargs}') - - def helm_uninstall_cluster_milvus(self): - """ - helm uninstall and delete etcd pvc - :return: - """ - uninstall_cmd = f'helm uninstall {self.release_name}' - if os.system(uninstall_cmd): - raise Exception(f'Failed to uninstall {self.release_name}') - # delete etcd pvc - delete_pvc_cmd = f'kubectl delete pvc data-{self.release_name}-etcd-0' - if os.system(delete_pvc_cmd): - raise Exception(f'Failed to delete {self.release_name} etcd pvc') - - def get_service_ip(self): - """ - get deployed milvus service host - :return: str ip - """ - from kubernetes import client, config - # from kubernetes.client.rest import ApiException - config.load_kube_config() - v1 = client.CoreV1Api() - service = v1.read_namespaced_service(f'{self.release_name}-milvus', constants.NAMESPACE) - return service.status.load_balancer.ingress[0].ip - - def export_all_logs(self): - """ - export all cluster logs to /tmp/milvus, and temporarily missing minio pod logs - :return: export all pods' log to constants.MILVUS_LOGS_PATH - """ - pods = self.list_all_pods() - for pod in pods: - os.system(f'kubectl logs {pod} > {constants.MILVUS_LOGS_PATH}/{pod}.log 2>&1') - - def list_all_pods(self): - """ - list all pods of this release - :return: list pods - """ - from kubernetes import client, config - config.load_kube_config() - v1 = client.CoreV1Api() - label_selector = f'app.kubernetes.io/instance={self.release_name}' - ret = v1.list_namespaced_pod(namespace=constants.NAMESPACE, label_selector=label_selector) - pods = [] - for i in ret.items: - pods.append(i.metadata.name) - return pods - - -if __name__ == '__main__': - # default deploy q replicas - release_name = "scale-proxy" - env = HelmEnv(release_name=release_name) - # env.helm_install_cluster_milvus() - # host = env.get_service_ip() - # env.helm_upgrade_cluster_milvus(queryNode=2) - # env.helm_uninstall_cluster_milvus() - env.export_all_logs()