Chameleon rest-grpc gateway fetching and compiling
diff --git a/chameleon/main.py b/chameleon/main.py
index dbbca2f..e75de77 100755
--- a/chameleon/main.py
+++ b/chameleon/main.py
@@ -26,10 +26,12 @@
 
 base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
 sys.path.append(base_dir)
+sys.path.append(os.path.join(base_dir, '/chameleon/protos/third_party'))
 
 from chameleon.structlog_setup import setup_logging
 from chameleon.nethelpers import get_my_primary_local_ipv4
 from chameleon.dockerhelpers import get_my_containers_name
+from chameleon.grpc_client.grpc_client import GrpcClient
 
 
 defs = dict(
@@ -82,6 +84,18 @@
                         default=defs['fluentd'],
                         help=_help)
 
+    _help = ('gRPC end-point to connect to. It can either be a direct'
+             'definition in the form of <hostname>:<port>, or it can be an'
+             'indirect definition in the form of @<service-name> where'
+             '<service-name> is the name of the grpc service as registered'
+             'in consul (example: @voltha-grpc). (default: %s'
+             % defs['grpc_endpoint'])
+    parser.add_argument('-G', '--grpc-endpoint',
+                        dest='grpc_endpoint',
+                        action='store',
+                        default=defs['grpc_endpoint'],
+                        help=_help)
+
     _help = ('<hostname> or <ip> at which Chameleon is reachable from inside'
              'the cluster (default: %s)' % defs['internal_host_address'])
     parser.add_argument('-H', '--internal-host-address',
@@ -196,7 +210,9 @@
     def startup_components(self):
         self.log.info('starting-internal-components')
 
-        # TODO init client
+        self.grpc_client = \
+            GrpcClient(self.args.consul, self.args.grpc_endpoint).run()
+
         # TODO init server
 
         self.log.info('started-internal-services')