summaryrefslogtreecommitdiffstats
path: root/clover/controller/docker
diff options
context:
space:
mode:
authorEddie Arrage <eddie.arrage@huawei.com>2018-06-28 17:42:28 +0000
committerEddie Arrage <eddie.arrage@huawei.com>2018-07-31 03:39:28 +0000
commitf38f41124db707b390e8f21c1a91e1022b3633ab (patch)
tree434392d7104140ebf65ef7542bf325471e1d7e73 /clover/controller/docker
parent1f543c55dd426a34ab3cafa514fa446c22b6fa03 (diff)
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>
Diffstat (limited to 'clover/controller/docker')
-rw-r--r--clover/controller/docker/Dockerfile41
1 files changed, 41 insertions, 0 deletions
diff --git a/clover/controller/docker/Dockerfile b/clover/controller/docker/Dockerfile
new file mode 100644
index 0000000..52d4673
--- /dev/null
+++ b/clover/controller/docker/Dockerfile
@@ -0,0 +1,41 @@
+# Copyright (c) Authors of Clover
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+
+FROM ubuntu:16.04
+
+RUN apt-get update && apt-get install -y \
+ nginx \
+ python-pip \
+ git \
+ python-dev
+
+# Install required python packages
+RUN python -m pip install gunicorn flask \
+ grpcio protobuf jinja2 redis
+
+COPY /control /control
+COPY /process /process
+
+COPY process/nginx.conf /etc/nginx/nginx.conf
+
+# Get all grpc files
+RUN mkdir /grpc_temp
+WORKDIR /grpc_temp
+RUN git config --global http.sslVerify false
+RUN git clone https://github.com/opnfv/clover.git
+RUN cp clover/samples/services/snort_ids/docker/grpc/snort_pb2_grpc.py /control/api
+RUN cp clover/samples/services/snort_ids/docker/grpc/snort_pb2.py /control/api
+RUN cp clover/samples/services/nginx/docker/grpc/nginx_pb2_grpc.py /control/api
+RUN cp clover/samples/services/nginx/docker/grpc/nginx_pb2.py /control/api
+RUN cp clover/clover/collector/grpc/collector_pb2_grpc.py /control/api
+RUN cp clover/clover/collector/grpc/collector_pb2.py /control/api
+RUN cp clover/clover/tools/jmeter/jmeter-master/grpc/jmeter_pb2_grpc.py /control/api
+RUN cp clover/clover/tools/jmeter/jmeter-master/grpc/jmeter_pb2.py /control/api
+RUN rm -rf /grpc_temp
+
+WORKDIR /process
+CMD ./start_process.sh