docstr: Get the port number used by MLMD gRPC server.
docstr_tok: ["Get","the","port","number","used","by","MLMD","gRPC","server","."]
code: def _get_grpc_port(cls) -> str:
      """Get the port number used by MLMD gRPC server."""
      get_grpc_port_command = [
          "kubectl",
          "-n",
          "kubeflow",
          "get",
          "configmap",
          "metadata-grpc-configmap",
          "-o",
          "jsonpath={.data.METADATA_GRPC_SERVICE_PORT}",
      ]
  
      grpc_port = subprocess.check_output(get_grpc_port_command)
      return grpc_port.decode("utf-8")
  
imports: import os
  import subprocess
  import time
  from typing import List
  from absl import logging
  from grpc import insecure_channel
  import tensorflow
  from tfx.dsl.io import fileio
  from tfx.orchestration import test_utils
  from tfx.orchestration.experimental.core.testing import test_dynamic_exec_properties_pipeline
  from tfx.orchestration.kubeflow import test_utils
  from tfx.orchestration.test_pipelines import download_grep_print_pipeline
  from tfx.types import standard_artifacts
  from ml_metadata.proto import metadata_store_pb2
  from ml_metadata.proto import metadata_store_service_pb2
  from ml_metadata.proto import metadata_store_service_pb2_grpc
label_desc: Use image node_id 3 for calling the KubeflowEndToEndTest obj's underlying member method code with example usage: obj._get_grpc_port(cls) and returns: grpc_port