Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
FROM golang:1.9 AS builder
FROM golang:1.9-alpine

RUN mkdir /app
ADD . /app/
WORKDIR /app
RUN apk add git bash
RUN go get github.com/go-sql-driver/mysql
RUN go build -o main .

FROM alpine:3.10

COPY --from=builder /app/main /usr/bin/mysql-load-generator
CMD ["/usr/bin/mysql-load-generator"]
CMD ["/app/entrypoint.sh"]
16 changes: 16 additions & 0 deletions config-template.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/bash
set -x

. vars.sh

cat << EOF > config.json
{
"connectionString": "${USER}:${PASSWORD}@tcp(${HOST}:${PORT})/${DB}",
"requestsPerSecond": ${RPS},
"printLogs": true,
"timeToRunInSeconds": ${TTR},
"queries" : [
"${QUERY}"
]
}
EOF
6 changes: 6 additions & 0 deletions entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/bin/bash

./config-template.sh

/app/main "$@"

50 changes: 50 additions & 0 deletions load-gen.deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
name: loadgen
labels:
app: loadgen
spec:
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 0%
maxSurge: 66%
revisionHistoryLimit: 5
replicas: 1
selector:
matchLabels:
app: loadgen
template:
metadata:
labels:
app: loadgen
spec:
containers:
- image: lvejm/mysql-load-generator
name: loadgen
imagePullPolicy: Always
resources:
limits:
cpu: 200m
memory: 200Mi
requests:
cpu: 100m
memory: 75Mi
env:
- name: lg_USER
value: maxscale1
- name: lg_PASSWORD
value: maxscaledemo1
- name: lg_HOST
value: maxscale.maxscale.svc.cluster.local
- name: lg_DB
value: employees
- name: lg_RPS
value: "2"
- name: lg_TTR
value: "90"
- name: lg_QUERY
value: "select emp.emp_no, emp.first_name, emp.last_name, sal.salary, sal.from_date from employees emp inner join (select emp_no, MAX(salary) as salary, from_date from salaries group by emp_no) sal on (emp.emp_no = sal.emp_no) LIMIT 50;"

15 changes: 15 additions & 0 deletions vars.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/bin/bash

# setup for overrides in container environment prefixed by "lg_"

export USER=${lg_USER:-maxscale1}
export PASSWORD=${lg_PASSWORD:-maxscaledemo}
export HOST=${lg_HOST:-maxscale.maxscale.svc.cluster.local}
export PORT=${lg_PORT:-3306}
export DB=${lg_DB:-employees}

export RPS=${lg_RPS:-2}
export TTR=${lg_TTR:-90}
export QUERY=${lg_QUERY:-"select emp.emp_no, emp.first_name, emp.last_name, sal.salary, sal.from_date from employees emp inner join (select emp_no, MAX(salary) as salary, from_date from salaries group by emp_no) sal on (emp.emp_no = sal.emp_no) LIMIT 50;"}