code: def helm_install_server(
      helm_path, deploy_mode, image_tag, image_type, name, namespace
  ):
      logger.debug("Server deploy mode: %s" % deploy_mode)
      host = "%s-milvus-ha.%s.svc.cluster.local" % (name, namespace)
      # TODO: update etcd config
      etcd_config_map_cmd = (
          "kubectl create configmap -n %s %s --from-literal=ETCD_QUOTA_BACKEND_BYTES=8589934592 --from-literal=ETCD_SNAPSHOT_COUNT=5000 --from-literal=ETCD_AUTO_COMPACTION_MODE=revision --from-literal=ETCD_AUTO_COMPACTION_RETENTION=1"
          % (namespace, name)
      )
      if os.system(etcd_config_map_cmd):
          raise Exception("Create configmap: {} failed".format(name))
      logger.debug("Create configmap: {} successfully".format(name))
      log_path = config.LOG_PATH + "install.log"
      install_cmd = (
          "helm install \
              --set standalone.service.type=ClusterIP \
              --set image.all.repository=%s \
              --set image.all.tag=%s \
              --set minio.persistence.enabled=false \
              --set etcd.persistence.enabled=false \
              --set etcd.envVarsConfigMap=%s \
              --namespace %s \
              %s . >>%s >&1"
          % (
              config.REGISTRY_URL,
              image_tag,
              name,
              namespace,
              name,
              log_path,
          )
      )
      # --set image.all.pullPolicy=Always \
      if deploy_mode == "cluster":
          install_cmd = (
              "helm install \
                  --set standalone.enabled=false \
                  --set image.all.repository=%s \
                  --set image.all.tag=%s \
                  --set minio.persistence.enabled=false \
                  --set etcd.persistence.enabled=false \
                  --set etcd.envVarsConfigMap=%s \
                  --namespace %s \
                  %s . >>%s >&1"
              % (
                  config.REGISTRY_URL,
                  image_tag,
                  name,
                  namespace,
                  name,
                  log_path,
              )
          )
          # --set image.all.pullPolicy=Always \
      elif deploy_mode != "single":
          raise Exception(
              "Deploy mode: {} not support".format(deploy_mode)
          )
      logger.debug(install_cmd)
      logger.debug(host)
      if os.system("cd %s && %s" % (helm_path, install_cmd)):
          logger.error("Helm install failed: %s" % name)
          return None
      logger.debug("Wait for 60s ..")
      time.sleep(60)
      # config.load_kube_config()
      # v1 = client.CoreV1Api()
      # pod_name = None
      # pod_id = None
      # pods = v1.list_namespaced_pod(namespace)
      # for i in pods.items:
      #     if i.metadata.name.find(name) != -1:
      #         pod_name = i.metadata.name
      #         pod_ip = i.status.pod_ip
      # logger.debug(pod_name)
      # logger.debug(pod_ip)
      # return pod_name, pod_ip
      return host
  
file_path: milvus/tests/benchmark/milvus_benchmark/env/helm_utils.py
imports: import os
  import pdb
  import time
  import logging
  import hashlib
  import traceback
  from yaml import full_load, dump
  from milvus_benchmark import utils
  from milvus_benchmark import config
label_desc: Use image node_id 4 for calling a global function with example usage: helm_install_server(helm_path, deploy_mode, image_tag, image_type, name, namespace) and returns: host, None