Implement initial clover-controller service 27/59227/4
authorEddie Arrage <eddie.arrage@huawei.com>
Thu, 28 Jun 2018 17:42:28 +0000 (17:42 +0000)
committerEddie Arrage <eddie.arrage@huawei.com>
Tue, 31 Jul 2018 03:39:28 +0000 (03:39 +0000)
commitf38f41124db707b390e8f21c1a91e1022b3633ab
tree434392d7104140ebf65ef7542bf325471e1d7e73
parent1f543c55dd426a34ab3cafa514fa446c22b6fa03
Implement initial clover-controller service

- First pass of clover-controller which resides within the k8s
cluster and provides interfaces to all Clover services
- Only service that should need to be exposed outside of
cluster
- Docker build of container that uses stack of nginx, gunicorn
and flask to provide REST interface
- REST interface is intended to serve cloverctl CLI and
dashboard browser UI
- Implements GRPC messaging to clover-collector and snort
- GRPC interfaces files for snort/nginx are added to
container from repo. Collector GRPC files will be removed
from controller/control/api once patch below is merged
https://gerrit.opnfv.org/gerrit/#/c/57245/ and added
similarly
- Provides first pass callback for file upload from
clover-server.
- Some REST messages implement JSON for passing params
to internal services
- Redis interface added to obtain data from services.
Currently, a simple interface to retrieve snort event
information
- YAML manifest renderer to add to k8s. Uses NodePort
service currently, defaulting to port 32044.

- Removed collector gRPC interface files with merge of collector
- Expose tracing and monitoring host/port parameters, as these vary
depending on Istio version and Jaeger version
- Add logging to flask blueprints
- Added jmeter blueprint interface with REST for
testplan generation, start test and result retrieval
- Added flask Response to REST reply messages
- Retrieve some basic stats from collector in json
response

Change-Id: I59eaeb860445ade4b45bba22747a61fb0cf0bbd4
Signed-off-by: Eddie Arrage <eddie.arrage@huawei.com>
22 files changed:
clover/controller/__init__.py [new file with mode: 0644]
clover/controller/build.sh [new file with mode: 0755]
clover/controller/control/__init__.py [new file with mode: 0644]
clover/controller/control/api/__init__.py [new file with mode: 0644]
clover/controller/control/api/collector.py [new file with mode: 0644]
clover/controller/control/api/file_upload.py [new file with mode: 0644]
clover/controller/control/api/jmeter.py [new file with mode: 0644]
clover/controller/control/api/nginx.py [new file with mode: 0644]
clover/controller/control/api/snort.py [new file with mode: 0644]
clover/controller/control/control.py [new file with mode: 0644]
clover/controller/control/templates/home.html [new file with mode: 0644]
clover/controller/control/views/__init__.py [new file with mode: 0644]
clover/controller/control/views/dashboard.py [new file with mode: 0644]
clover/controller/control/wsgi.py [new file with mode: 0644]
clover/controller/docker/Dockerfile [new file with mode: 0644]
clover/controller/process/__init__.py [new file with mode: 0644]
clover/controller/process/gunicorn_process.sh [new file with mode: 0755]
clover/controller/process/nginx.conf [new file with mode: 0644]
clover/controller/process/nginx_process.sh [new file with mode: 0755]
clover/controller/process/start_process.sh [new file with mode: 0755]
clover/controller/yaml/manifest.template [new file with mode: 0644]
clover/controller/yaml/render_yaml.py [new file with mode: 0644]