You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by ni...@apache.org on 2018/08/13 14:34:11 UTC
[incubator-servicecomb-saga] branch master updated: [SCB-823] Refer
to public images, add testing facilities (#250)
This is an automated email from the ASF dual-hosted git repository.
ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-saga.git
The following commit(s) were added to refs/heads/master by this push:
new eac55be [SCB-823] Refer to public images, add testing facilities (#250)
eac55be is described below
commit eac55be231aa74cb265563cb4e7ae13f8e95a689
Author: crystaldust <ju...@gmail.com>
AuthorDate: Mon Aug 13 22:34:09 2018 +0800
[SCB-823] Refer to public images, add testing facilities (#250)
* Add jmeter-collector in base folder.
The collector receives tar.gz file, which contains the jmeter dashboard,
decompress it into a formatted path and display the results in a web page.
* Refer images from dockerhub
* Upload spring-demo jmeter test results to jmeter-collector.
- Remove the hostPath volume mounts since the test result is now
uploaded to jmeter-collector service.
- Set container user's HOME as working dir for WRITE permission under
most scenarios
* Update the README on k8s operations.
---
saga-demo/saga-k8s-resources/README.md | 11 ++++-----
saga-demo/saga-k8s-resources/base/alpha.yaml | 2 +-
.../car.yaml => base/jmeter-collector.yaml} | 28 ++++++++++------------
.../saga-k8s-resources/spring-demo/booking.yaml | 2 +-
saga-demo/saga-k8s-resources/spring-demo/car.yaml | 2 +-
.../saga-k8s-resources/spring-demo/hotel.yaml | 2 +-
.../spring-demo/test/jmeter.yaml | 23 ++++++++----------
7 files changed, 31 insertions(+), 39 deletions(-)
diff --git a/saga-demo/saga-k8s-resources/README.md b/saga-demo/saga-k8s-resources/README.md
index a10588c..894bd88 100644
--- a/saga-demo/saga-k8s-resources/README.md
+++ b/saga-demo/saga-k8s-resources/README.md
@@ -27,6 +27,8 @@ service "alpha-server" created
deployment "alphaserver" created
service "postgresql" created
deployment "database" created
+service "jmeter-collector" created
+deployment "jmeter-collector" created
$ kubectl apply -f ./spring-demo
service "booking" created
@@ -60,13 +62,8 @@ configmap "springdemo-jmeter-script" created
deployment "spring-demo-jmeter" created
$ kubectl get pods -n servicecomb | grep jmeter
+jmeter-collector-75c4c96dbb-2bjtc 1/1 Running 0 47s
spring-demo-jmeter-6cfb679f58-sckkx 1/1 Running 0 12s
```
-The jmeter deployment will keep testing the demo and generate the test result. For now the the result file is stored in the Kubernetes nodes under the path `/saga-jmeter-result/{demo_name}.jtl`. You can generate the HTML dashboard with the command:
-
-```bash
-$ jmeter -g /saga-jmeter-result/{demo_name}.jtl -o output/
-```
-
-We will try to provide more services to automate the dashboard generation in the future.
+The jmeter deployment will keep testing the demo and generate the test result. After each test, the result and its corresponding dashboard will be uploaded to the jmeter-collector service, which provides a simple web page to browser the test outputs. So make sure you config the jmeter-collector to be accessible, like a [NodePort](https://kubernetes.io/docs/concepts/services-networking/service/#nodeport) in a private cluster or [LoadBalancer](https://kubernetes.io/docs/concepts/services-n [...]
diff --git a/saga-demo/saga-k8s-resources/base/alpha.yaml b/saga-demo/saga-k8s-resources/base/alpha.yaml
index 47c0d5d..408c13b 100644
--- a/saga-demo/saga-k8s-resources/base/alpha.yaml
+++ b/saga-demo/saga-k8s-resources/base/alpha.yaml
@@ -44,7 +44,7 @@ spec:
spec:
containers:
- name: alphaserver
- image: alpha-server:0.3.0-SNAPSHOT
+ image: saga/alpha-server:0.3.0-SNAPSHOT
imagePullPolicy: IfNotPresent
# ports:
# - containerPort: 8080
diff --git a/saga-demo/saga-k8s-resources/spring-demo/car.yaml b/saga-demo/saga-k8s-resources/base/jmeter-collector.yaml
similarity index 79%
copy from saga-demo/saga-k8s-resources/spring-demo/car.yaml
copy to saga-demo/saga-k8s-resources/base/jmeter-collector.yaml
index 064ead2..4492fa4 100644
--- a/saga-demo/saga-k8s-resources/spring-demo/car.yaml
+++ b/saga-demo/saga-k8s-resources/base/jmeter-collector.yaml
@@ -18,38 +18,36 @@
apiVersion: v1
kind: Service
metadata:
- name: car
+ name: jmeter-collector
namespace: servicecomb
labels:
- app: car
+ app: jmeter-collector
spec:
ports:
- - port: 8082
- targetPort: 8080
- name: car
+ - port: 80
+ targetPort: 8883
+ name: http-jmeter-collector
+ # externalIPs: ["YOUR_NODE_IP"]
+ # type: NodePort
selector:
- app: car
+ app: jmeter-collector
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
- name: car
+ name: jmeter-collector
namespace: servicecomb
spec:
replicas: 1
template:
metadata:
labels:
- app: car
+ app: jmeter-collector
version: v1
spec:
containers:
- - name: car
- image: car:0.3.0-SNAPSHOT
+ - name: jmeter-collector
+ image: saga/jmeter-collector:v1
imagePullPolicy: IfNotPresent
- env:
- - name: JAVA_OPTS
- value: -Dalpha.cluster.address=alpha-server.servicecomb:8080
- ports:
- - containerPort: 8080
---
+
diff --git a/saga-demo/saga-k8s-resources/spring-demo/booking.yaml b/saga-demo/saga-k8s-resources/spring-demo/booking.yaml
index 93fc151..10f7c80 100644
--- a/saga-demo/saga-k8s-resources/spring-demo/booking.yaml
+++ b/saga-demo/saga-k8s-resources/spring-demo/booking.yaml
@@ -45,7 +45,7 @@ spec:
spec:
containers:
- name: booking
- image: booking:0.3.0-SNAPSHOT
+ image: saga/booking:0.3.0-SNAPSHOT
imagePullPolicy: IfNotPresent
env:
- name: JAVA_OPTS
diff --git a/saga-demo/saga-k8s-resources/spring-demo/car.yaml b/saga-demo/saga-k8s-resources/spring-demo/car.yaml
index 064ead2..52a7451 100644
--- a/saga-demo/saga-k8s-resources/spring-demo/car.yaml
+++ b/saga-demo/saga-k8s-resources/spring-demo/car.yaml
@@ -45,7 +45,7 @@ spec:
spec:
containers:
- name: car
- image: car:0.3.0-SNAPSHOT
+ image: saga/car:0.3.0-SNAPSHOT
imagePullPolicy: IfNotPresent
env:
- name: JAVA_OPTS
diff --git a/saga-demo/saga-k8s-resources/spring-demo/hotel.yaml b/saga-demo/saga-k8s-resources/spring-demo/hotel.yaml
index ef1b052..87f3808 100644
--- a/saga-demo/saga-k8s-resources/spring-demo/hotel.yaml
+++ b/saga-demo/saga-k8s-resources/spring-demo/hotel.yaml
@@ -45,7 +45,7 @@ spec:
spec:
containers:
- name: hotel
- image: hotel:0.3.0-SNAPSHOT
+ image: saga/hotel:0.3.0-SNAPSHOT
imagePullPolicy: IfNotPresent
env:
- name: JAVA_OPTS
diff --git a/saga-demo/saga-k8s-resources/spring-demo/test/jmeter.yaml b/saga-demo/saga-k8s-resources/spring-demo/test/jmeter.yaml
index b631253..8283d22 100644
--- a/saga-demo/saga-k8s-resources/spring-demo/test/jmeter.yaml
+++ b/saga-demo/saga-k8s-resources/spring-demo/test/jmeter.yaml
@@ -28,27 +28,24 @@ spec:
version: v1
spec:
containers:
- - name: jmeter
- image: justb4/jmeter
+ - name: spring-demo-jmeter
+ image: saga/jmeter:v1
imagePullPolicy: IfNotPresent
# TODO ReplicaSet, ReplicationController, Deployment, Daemonset only allow restartPolicy to be 'Always'
# Maybe we should provide a custom test scheduler to scale up pods and let them exit naturally.
# restartPolicy: Never
- args: ["-n", "-t", "/tmp/saga.jmx", "-l", "/tmp/jmeter-result/spring-demo.jtl"]
+ args: ["-n", "-t", "/tmp/saga.jmx", "-l", "/root/spring-demo.jtl", "-e", "-o", "/root/dashboard"]
+ env:
+ - name: REPORT_PATH
+ value: /root/spring-demo.jtl
+ - name: REPORT_UPLOAD_SERVER
+ value: jmeter-collector.servicecomb
+ - name: TESTNAME
+ value: spring-demo
volumeMounts:
- name: jmeter-script
mountPath: /tmp/
- - name: result-dir
- mountPath: /tmp/jmeter-result
- lifecycle:
- preStop:
- exec:
- command: ["echo", "jmeter finished"]
volumes:
- name: jmeter-script
configMap:
name: springdemo-jmeter-script
- - name: result-dir
- hostPath:
- type: DirectoryOrCreate
- path: /saga-jmeter-result/