Created
March 24, 2020 14:25
-
-
Save johnfitzpatrick/372373c4b7a32a475def91d2ba8cf02d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apiVersion: extensions/v1beta1 | |
kind: Deployment | |
metadata: | |
name: carts-db | |
labels: | |
name: carts-db | |
namespace: sock-shop | |
spec: | |
replicas: 1 | |
template: | |
metadata: | |
labels: | |
name: carts-db | |
spec: | |
containers: | |
- name: carts-db | |
image: mongo | |
ports: | |
- name: mongo | |
containerPort: 27017 | |
resources: | |
requests: | |
cpu: 100m | |
memory: 64Mi | |
limits: | |
cpu: 100m | |
memory: 300Mi | |
securityContext: | |
capabilities: | |
drop: | |
- all | |
add: | |
- CHOWN | |
- SETGID | |
- SETUID | |
readOnlyRootFilesystem: true | |
volumeMounts: | |
- mountPath: /tmp | |
name: tmp-volume | |
volumes: | |
- name: tmp-volume | |
emptyDir: | |
medium: Memory | |
nodeSelector: | |
beta.kubernetes.io/os: linux | |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: carts-db | |
labels: | |
name: carts-db | |
namespace: sock-shop | |
spec: | |
ports: | |
# the port that this service should serve on | |
- port: 27017 | |
targetPort: 27017 | |
selector: | |
name: carts-db | |
--- | |
apiVersion: extensions/v1beta1 | |
kind: Deployment | |
metadata: | |
name: carts | |
labels: | |
name: carts | |
namespace: sock-shop | |
spec: | |
replicas: 1 | |
template: | |
metadata: | |
labels: | |
name: carts | |
annotations: | |
prometheus.io/scrape: 'true' | |
prometheus.io/port: '80' | |
spec: | |
containers: | |
- name: carts | |
image: weaveworksdemos/carts:0.4.8 | |
ports: | |
- containerPort: 80 | |
resources: | |
requests: | |
cpu: 20m | |
memory: 64Mi | |
limits: | |
cpu: 400m | |
memory: 500Mi | |
env: | |
- name: ZIPKIN | |
value: zipkin.jaeger.svc.cluster.local | |
- name: JAVA_OPTS | |
value: -Xms64m -Xmx350m -XX:PermSize=32m -XX:MaxPermSize=64m -XX:+UseG1GC -Djava.security.egd=file:/dev/urandom | |
securityContext: | |
runAsNonRoot: true | |
runAsUser: 10001 | |
capabilities: | |
drop: | |
- all | |
add: | |
- NET_BIND_SERVICE | |
readOnlyRootFilesystem: true | |
volumeMounts: | |
- mountPath: /tmp | |
name: tmp-volume | |
volumes: | |
- name: tmp-volume | |
emptyDir: | |
medium: Memory | |
nodeSelector: | |
beta.kubernetes.io/os: linux | |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: carts | |
labels: | |
name: carts | |
namespace: sock-shop | |
spec: | |
ports: | |
# the port that this service should serve on | |
- port: 80 | |
targetPort: 80 | |
selector: | |
name: carts | |
--- | |
apiVersion: extensions/v1beta1 | |
kind: Deployment | |
metadata: | |
name: catalogue-db | |
labels: | |
name: catalogue-db | |
namespace: sock-shop | |
spec: | |
replicas: 1 | |
template: | |
metadata: | |
labels: | |
name: catalogue-db | |
spec: | |
containers: | |
- name: catalogue-db | |
image: weaveworksdemos/catalogue-db:0.3.0 | |
env: | |
- name: MYSQL_ROOT_PASSWORD | |
value: fake_password | |
- name: MYSQL_DATABASE | |
value: socksdb | |
ports: | |
- name: mysql | |
containerPort: 3306 | |
resources: | |
requests: | |
cpu: 20m | |
memory: 64Mi | |
limits: | |
cpu: 400m | |
memory: 300Mi | |
nodeSelector: | |
beta.kubernetes.io/os: linux | |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: catalogue-db | |
labels: | |
name: catalogue-db | |
namespace: sock-shop | |
spec: | |
ports: | |
# the port that this service should serve on | |
- port: 3306 | |
targetPort: 3306 | |
selector: | |
name: catalogue-db | |
--- | |
apiVersion: extensions/v1beta1 | |
kind: Deployment | |
metadata: | |
name: catalogue | |
labels: | |
name: catalogue | |
namespace: sock-shop | |
spec: | |
replicas: 1 | |
template: | |
metadata: | |
labels: | |
name: catalogue | |
annotations: | |
prometheus.io/scrape: 'true' | |
prometheus.io/port: '80' | |
spec: | |
containers: | |
- name: catalogue | |
image: weaveworksdemos/catalogue:0.3.5 | |
ports: | |
- containerPort: 80 | |
resources: | |
requests: | |
cpu: 20m | |
memory: 64Mi | |
limits: | |
cpu: 400m | |
memory: 300Mi | |
securityContext: | |
runAsNonRoot: true | |
runAsUser: 10001 | |
capabilities: | |
drop: | |
- all | |
add: | |
- NET_BIND_SERVICE | |
readOnlyRootFilesystem: true | |
nodeSelector: | |
beta.kubernetes.io/os: linux | |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: catalogue | |
labels: | |
name: catalogue | |
namespace: sock-shop | |
spec: | |
ports: | |
# the port that this service should serve on | |
- port: 80 | |
targetPort: 80 | |
selector: | |
name: catalogue | |
--- | |
apiVersion: extensions/v1beta1 | |
kind: Deployment | |
metadata: | |
name: front-end | |
namespace: sock-shop | |
spec: | |
replicas: 1 | |
template: | |
metadata: | |
labels: | |
name: front-end | |
annotations: | |
prometheus.io/scrape: 'true' | |
prometheus.io/port: '8079' | |
spec: | |
containers: | |
- name: front-end | |
image: weaveworksdemos/front-end:0.3.12 | |
ports: | |
- containerPort: 8079 | |
resources: | |
requests: | |
cpu: 200m | |
memory: 64Mi | |
limits: | |
cpu: 400m | |
memory: 300Mi | |
securityContext: | |
runAsNonRoot: true | |
runAsUser: 10001 | |
capabilities: | |
drop: | |
- all | |
readOnlyRootFilesystem: true | |
nodeSelector: | |
beta.kubernetes.io/os: linux | |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: front-end | |
labels: | |
name: front-end | |
namespace: sock-shop | |
spec: | |
type: LoadBalancer | |
ports: | |
- port: 80 | |
targetPort: 8079 | |
selector: | |
name: front-end | |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: front-end-internal | |
spec: | |
type: ClusterIP | |
selector: | |
name: front-end | |
ports: | |
- name: http | |
port: 80 | |
targetPort: 8079 | |
--- | |
apiVersion: extensions/v1beta1 | |
kind: Deployment | |
metadata: | |
name: orders-db | |
labels: | |
name: orders-db | |
namespace: sock-shop | |
spec: | |
replicas: 1 | |
template: | |
metadata: | |
labels: | |
name: orders-db | |
spec: | |
containers: | |
- name: orders-db | |
image: mongo | |
ports: | |
- name: mongo | |
containerPort: 27017 | |
resources: | |
requests: | |
cpu: 20m | |
memory: 64Mi | |
limits: | |
cpu: 400m | |
memory: 300Mi | |
securityContext: | |
capabilities: | |
drop: | |
- all | |
add: | |
- CHOWN | |
- SETGID | |
- SETUID | |
readOnlyRootFilesystem: true | |
volumeMounts: | |
- mountPath: /tmp | |
name: tmp-volume | |
volumes: | |
- name: tmp-volume | |
emptyDir: | |
medium: Memory | |
nodeSelector: | |
beta.kubernetes.io/os: linux | |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: orders-db | |
labels: | |
name: orders-db | |
namespace: sock-shop | |
spec: | |
ports: | |
# the port that this service should serve on | |
- port: 27017 | |
targetPort: 27017 | |
selector: | |
name: orders-db | |
--- | |
apiVersion: extensions/v1beta1 | |
kind: Deployment | |
metadata: | |
name: orders | |
labels: | |
name: orders | |
namespace: sock-shop | |
spec: | |
replicas: 1 | |
template: | |
metadata: | |
labels: | |
name: orders | |
annotations: | |
prometheus.io/scrape: 'true' | |
prometheus.io/port: '80' | |
spec: | |
containers: | |
- name: orders | |
image: weaveworksdemos/orders:0.4.7 | |
env: | |
- name: ZIPKIN | |
value: zipkin.jaeger.svc.cluster.local | |
- name: JAVA_OPTS | |
value: -Xms64m -Xmx256m -XX:PermSize=32m -XX:MaxPermSize=64m -XX:+UseG1GC -Djava.security.egd=file:/dev/urandom | |
ports: | |
- containerPort: 80 | |
resources: | |
requests: | |
cpu: 100m | |
memory: 64Mi | |
limits: | |
cpu: 300m | |
memory: 400Mi | |
securityContext: | |
runAsNonRoot: true | |
runAsUser: 10001 | |
capabilities: | |
drop: | |
- all | |
add: | |
- NET_BIND_SERVICE | |
readOnlyRootFilesystem: true | |
volumeMounts: | |
- mountPath: /tmp | |
name: tmp-volume | |
volumes: | |
- name: tmp-volume | |
emptyDir: | |
medium: Memory | |
nodeSelector: | |
beta.kubernetes.io/os: linux | |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: orders | |
labels: | |
name: orders | |
namespace: sock-shop | |
spec: | |
ports: | |
# the port that this service should serve on | |
- port: 80 | |
targetPort: 80 | |
selector: | |
name: orders | |
--- | |
apiVersion: extensions/v1beta1 | |
kind: Deployment | |
metadata: | |
name: payment | |
labels: | |
name: payment | |
namespace: sock-shop | |
spec: | |
replicas: 1 | |
template: | |
metadata: | |
labels: | |
name: payment | |
annotations: | |
prometheus.io/scrape: 'true' | |
prometheus.io/port: '80' | |
spec: | |
containers: | |
- name: payment | |
image: weaveworksdemos/payment:0.4.3 | |
ports: | |
- containerPort: 80 | |
resources: | |
requests: | |
cpu: 200m | |
memory: 64Mi | |
limits: | |
cpu: 400m | |
memory: 300Mi | |
securityContext: | |
runAsNonRoot: true | |
runAsUser: 10001 | |
capabilities: | |
drop: | |
- all | |
add: | |
- NET_BIND_SERVICE | |
readOnlyRootFilesystem: true | |
nodeSelector: | |
beta.kubernetes.io/os: linux | |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: payment | |
labels: | |
name: payment | |
namespace: sock-shop | |
spec: | |
ports: | |
# the port that this service should serve on | |
- port: 80 | |
targetPort: 80 | |
selector: | |
name: payment | |
--- | |
apiVersion: extensions/v1beta1 | |
kind: Deployment | |
metadata: | |
name: queue-master | |
labels: | |
name: queue-master | |
namespace: sock-shop | |
spec: | |
replicas: 1 | |
template: | |
metadata: | |
labels: | |
name: queue-master | |
annotations: | |
prometheus.io/scrape: 'true' | |
prometheus.io/port: '80' | |
spec: | |
containers: | |
- name: queue-master | |
image: weaveworksdemos/queue-master:0.3.1 | |
ports: | |
- containerPort: 80 | |
resources: | |
requests: | |
cpu: 200m | |
memory: 200Mi | |
limits: | |
cpu: 600m | |
memory: 600Mi | |
nodeSelector: | |
beta.kubernetes.io/os: linux | |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: queue-master | |
labels: | |
name: queue-master | |
annotations: | |
prometheus.io/path: "/prometheus" | |
namespace: sock-shop | |
spec: | |
ports: | |
# the port that this service should serve on | |
- port: 80 | |
targetPort: 80 | |
selector: | |
name: queue-master | |
--- | |
apiVersion: extensions/v1beta1 | |
kind: Deployment | |
metadata: | |
name: rabbitmq | |
labels: | |
name: rabbitmq | |
namespace: sock-shop | |
spec: | |
replicas: 1 | |
template: | |
metadata: | |
labels: | |
name: rabbitmq | |
spec: | |
containers: | |
- name: rabbitmq | |
image: rabbitmq:3.6.8 | |
ports: | |
- containerPort: 5672 | |
resources: | |
requests: | |
cpu: 20m | |
memory: 64Mi | |
limits: | |
cpu: 400m | |
memory: 300Mi | |
securityContext: | |
capabilities: | |
drop: | |
- all | |
add: | |
- CHOWN | |
- SETGID | |
- SETUID | |
- DAC_OVERRIDE | |
readOnlyRootFilesystem: true | |
nodeSelector: | |
beta.kubernetes.io/os: linux | |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: rabbitmq | |
labels: | |
name: rabbitmq | |
namespace: sock-shop | |
spec: | |
ports: | |
# the port that this service should serve on | |
- port: 5672 | |
targetPort: 5672 | |
selector: | |
name: rabbitmq | |
--- | |
apiVersion: extensions/v1beta1 | |
kind: Deployment | |
metadata: | |
name: shipping | |
labels: | |
name: shipping | |
namespace: sock-shop | |
spec: | |
replicas: 1 | |
template: | |
metadata: | |
labels: | |
name: shipping | |
annotations: | |
prometheus.io/scrape: 'true' | |
prometheus.io/port: '80' | |
spec: | |
containers: | |
- name: shipping | |
image: weaveworksdemos/shipping:0.4.8 | |
env: | |
- name: ZIPKIN | |
value: zipkin.jaeger.svc.cluster.local | |
- name: JAVA_OPTS | |
value: -Xms64m -Xmx128m -XX:PermSize=32m -XX:MaxPermSize=64m -XX:+UseG1GC -Djava.security.egd=file:/dev/urandom | |
ports: | |
- containerPort: 80 | |
resources: | |
requests: | |
cpu: 20m | |
memory: 64Mi | |
limits: | |
cpu: 400m | |
memory: 300Mi | |
securityContext: | |
runAsNonRoot: true | |
runAsUser: 10001 | |
capabilities: | |
drop: | |
- all | |
add: | |
- NET_BIND_SERVICE | |
readOnlyRootFilesystem: true | |
volumeMounts: | |
- mountPath: /tmp | |
name: tmp-volume | |
volumes: | |
- name: tmp-volume | |
emptyDir: | |
medium: Memory | |
nodeSelector: | |
beta.kubernetes.io/os: linux | |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: shipping | |
labels: | |
name: shipping | |
namespace: sock-shop | |
spec: | |
ports: | |
# the port that this service should serve on | |
- port: 80 | |
targetPort: 80 | |
selector: | |
name: shipping | |
--- | |
apiVersion: extensions/v1beta1 | |
kind: Deployment | |
metadata: | |
name: user-db | |
labels: | |
name: user-db | |
namespace: sock-shop | |
spec: | |
replicas: 1 | |
template: | |
metadata: | |
labels: | |
name: user-db | |
spec: | |
containers: | |
- name: user-db | |
image: weaveworksdemos/user-db:0.4.0 | |
ports: | |
- name: mongo | |
containerPort: 27017 | |
resources: | |
requests: | |
cpu: 20m | |
memory: 64Mi | |
limits: | |
cpu: 400m | |
memory: 300Mi | |
securityContext: | |
capabilities: | |
drop: | |
- all | |
add: | |
- CHOWN | |
- SETGID | |
- SETUID | |
readOnlyRootFilesystem: true | |
volumeMounts: | |
- mountPath: /tmp | |
name: tmp-volume | |
volumes: | |
- name: tmp-volume | |
emptyDir: | |
medium: Memory | |
nodeSelector: | |
beta.kubernetes.io/os: linux | |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: user-db | |
labels: | |
name: user-db | |
namespace: sock-shop | |
spec: | |
ports: | |
# the port that this service should serve on | |
- port: 27017 | |
targetPort: 27017 | |
selector: | |
name: user-db | |
--- | |
apiVersion: extensions/v1beta1 | |
kind: Deployment | |
metadata: | |
name: user | |
labels: | |
name: user | |
namespace: sock-shop | |
spec: | |
replicas: 1 | |
template: | |
metadata: | |
labels: | |
name: user | |
annotations: | |
prometheus.io/scrape: 'true' | |
prometheus.io/port: '80' | |
spec: | |
containers: | |
- name: user | |
image: weaveworksdemos/user:0.4.7 | |
ports: | |
- containerPort: 80 | |
env: | |
- name: MONGO_HOST | |
value: user-db:27017 | |
resources: | |
requests: | |
cpu: 20m | |
memory: 64Mi | |
limits: | |
cpu: 400m | |
memory: 300Mi | |
securityContext: | |
runAsNonRoot: true | |
runAsUser: 10001 | |
capabilities: | |
drop: | |
- all | |
add: | |
- NET_BIND_SERVICE | |
readOnlyRootFilesystem: true | |
nodeSelector: | |
beta.kubernetes.io/os: linux | |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: user | |
labels: | |
name: user | |
namespace: sock-shop | |
spec: | |
ports: | |
# the port that this service should serve on | |
- port: 80 | |
targetPort: 80 | |
selector: | |
name: user | |
--- | |
apiVersion: apps/v1 | |
kind: Deployment | |
metadata: | |
name: loadgenerator | |
spec: | |
selector: | |
matchLabels: | |
app: loadgenerator | |
replicas: 1 | |
template: | |
metadata: | |
labels: | |
app: loadgenerator | |
annotations: | |
sidecar.istio.io/rewriteAppHTTPProbers: "true" | |
spec: | |
terminationGracePeriodSeconds: 5 | |
restartPolicy: Always | |
containers: | |
- name: main | |
image: gcr.io/google-samples/microservices-demo/loadgenerator:v0.1.3 | |
env: | |
- name: FRONTEND_ADDR | |
value: "front-end-internal:80" | |
- name: USERS | |
value: "50" | |
resources: | |
requests: | |
cpu: 100m | |
memory: 256Mi | |
limits: | |
cpu: 1000m | |
memory: 512Mi | |
volumeMounts: | |
- name: locustfile | |
mountPath: /locustfile.py | |
subPath: locustfile.py | |
volumes: | |
- configMap: | |
defaultMode: 420 | |
name: locustfile | |
name: locustfile | |
--- | |
apiVersion: v1 | |
data: | |
locustfile.py: | | |
#!/usr/bin/python | |
# | |
# Copyright 2018 Google LLC | |
# | |
# Licensed under the Apache License, Version 2.0 (the "License"); | |
# you may not use this file except in compliance with the License. | |
# You may obtain a copy of the License at | |
# | |
# http://www.apache.org/licenses/LICENSE-2.0 | |
# | |
# Unless required by applicable law or agreed to in writing, software | |
# distributed under the License is distributed on an "AS IS" BASIS, | |
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
# See the License for the specific language governing permissions and | |
# limitations under the License. | |
import random | |
from locust import HttpLocust, TaskSet | |
import base64 | |
authorization =[ | |
'am9obmRvZTpqb2huZG9lMTIz', | |
'Z295b3JpdmVybzpnb3lvcml2ZXJvMTIz', | |
'bWFyY286bWFyY28xMjM=', | |
] | |
products = [ | |
'3395a43e-2d88-40de-b95f-e00e1502085b', | |
'510a0d7e-8e83-4193-b483-e27e09ddc34d', | |
'808a2de1-1aaa-4c25-a9b9-6612e8f29a38', | |
'819e1fbf-8b7e-4f6d-811f-693534916a8b', | |
'837ab141-399e-4c1f-9abc-bace40296bac', | |
'a0a4f044-b040-410d-8ead-4de0446aec7e', | |
'd3588630-ad8e-49df-bbd7-3167f7efb246', | |
'zzz4f044-b040-410d-8ead-4de0446aec7e'] | |
def index(l): | |
l.client.get("/") | |
def login(l): | |
auth = random.choice(authorization) | |
l.client.get("/login",headers={"Authorization":"Basic "+auth}) | |
def category(l): | |
l.client.get("/category.html") | |
def browseProduct(l): | |
l.client.get("/detail.html?id=" + random.choice(products)) | |
def viewCart(l): | |
l.client.get("/basket.html", | |
cookies=l.client.cookies.get_dict()) | |
def addToCart(l): | |
product = random.choice(products) | |
l.client.post("/cart", | |
data='{"id": "'+product+'"}', | |
cookies=l.client.cookies.get_dict(), | |
headers={'Content-Type':'application/json; charset=UTF-8'}) | |
def checkout(l): | |
l.client.post("/orders", | |
# cookies={"Cookie":"md.sid=s%3Ath2ENwFYxeifXgyHvyoUsf56Bj5_XSF6.TlXpe%2B%2B7NQnZNtt9Wo33PiTUelvkFLh7aW5S4vGhQZg; logged_in=th2ENwFYxeifXgyHvyoUsf56Bj5_XSF6"}, | |
cookies=l.client.cookies.get_dict(), | |
headers={'Content-Type':'application/json; charset=UTF-8'}) | |
class UserBehavior(TaskSet): | |
def on_start(self): | |
login(self) | |
tasks = {login: 1, | |
index: 1, | |
browseProduct: 100, | |
addToCart: 1, | |
category: 5, | |
viewCart: 3, | |
checkout: 1} | |
class WebsiteUser(HttpLocust): | |
task_set = UserBehavior | |
min_wait = 100 | |
max_wait = 1000 | |
kind: ConfigMap | |
metadata: | |
labels: | |
app: sloadgenerator | |
name: locustfile | |
namespace: sock-shop |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment