VOL-1727: K8S Liveness and Readiness Probes Added
Change-Id: I18748ebd35286d54d0bb9f0b083f3c69b97abdb5
diff --git a/python/ofagent/main.py b/python/ofagent/main.py
index fa2b5c0..58afe15 100755
--- a/python/ofagent/main.py
+++ b/python/ofagent/main.py
@@ -18,6 +18,9 @@
import os
import yaml
+import SocketServer
+
+from probe import Probe
from twisted.internet import reactor
from twisted.internet.defer import inlineCallbacks
@@ -30,6 +33,7 @@
config=os.environ.get('CONFIG', './ofagent.yml'),
consul=os.environ.get('CONSUL', 'localhost:8500'),
controller=os.environ.get('CONTROLLER', 'localhost:6653'),
+ probe=os.environ.get('PROBE', ':8080'),
external_host_address=os.environ.get('EXTERNAL_HOST_ADDRESS',
get_my_primary_local_ipv4()),
grpc_endpoint=os.environ.get('GRPC_ENDPOINT', 'localhost:50055'),
@@ -71,6 +75,12 @@
default=defs['controller'],
help=_help)
+ _help = '<hostname>:<port> for liveness and readiness probes (default: %s)' % defs['probe']
+ parser.add_argument(
+ '-P', '--probe', dest='probe', action='store',
+ default=defs['probe'],
+ help=_help)
+
_help = ('<hostname> or <ip> at which ofagent is reachable from outside '
'the cluster (default: %s)' % defs['external_host_address'])
parser.add_argument('-E', '--external-host-address',
@@ -282,8 +292,15 @@
reactor.addSystemEventTrigger('before', 'shutdown',
self.shutdown_components)
+ reactor.callInThread(self.start_probe)
reactor.run()
+ def start_probe(self):
+ args = self.args
+ host = args.probe.split(':')[0]
+ port = args.probe.split(':')[1]
+ server = SocketServer.TCPServer((host, int(port)), Probe)
+ server.serve_forever()
if __name__ == '__main__':
Main().start()