1
0
Fork 0
mirror of https://github.com/kubernetes-sigs/node-feature-discovery.git synced 2024-12-14 11:57:51 +00:00

demo: make demo runnable again

Fix workload template specs:
- update node affinity in "demo-pod-with-discovery.cloverleaf"
- fix broken "demo-pod-without-discovery"

Fix runner scripts to be runnable from anywhere gqYour current working
dir shouldn't matter. Also make the scripts exit on any error. Also
remove trailing whitespace.

Minor fixes in README.
This commit is contained in:
Markus Lehtonen 2020-09-10 09:39:46 +03:00
parent 868699445f
commit 02d68ba491
7 changed files with 74 additions and 70 deletions

View file

@ -30,7 +30,7 @@ While our example illustrates the benefits of using node feature discovery with
Scripts to reproduce our demo results can be found in [helper-scripts](helper-scripts/).
### Prerequisites
1. `Kubectl` should be configured properly to work with your Kubernetes cluster.
1. `kubectl` should be configured properly to work with your Kubernetes cluster.
2. Node feature discovery should have been already deployed on your Kubernetes cluster.
### Instructions
@ -41,8 +41,8 @@ Follow these easy steps to reproduce the demo.
3. `./run-with-discovery.sh -a cloverleaf`
4. `./run-without-discovery.sh -a parsec`
5. `./run-without-discovery.sh -a cloverleaf`
6. `/aggregate-logs-and-plot.sh -a parsec`
7. `/aggregate-logs-and-plot.sh -a cloverleaf`
6. `./aggregate-logs-and-plot.sh -a parsec`
7. `./aggregate-logs-and-plot.sh -a cloverleaf`
Following the above steps will produce the performance and normalized performance logs and their corresponding plots for each application.

View file

@ -1,7 +1,13 @@
#!/usr/bin/env bash
set -eo pipefail
this=`basename $0`
this_dir=`dirname $0`
show_help() {
cat << EOF
Usage: ${0##*/} [-a APPLICATION_NAME]
Usage: $this [-a APPLICATION_NAME]
Aggregate the results from the specified application and plot the result.
-a APPLICATION_NAME run the pods with APPLICATION_NAME application.
@ -59,7 +65,7 @@ rm -f temp.log labels-with-discovery-$app.log
minimum=$(awk 'min=="" || $2 < min {min=$2} END {print min}' performance.log)
awk -v min=$minimum '{print $1,((($2/min)*100))-100}' performance.log > performance-norm.log
./box-plot.R performance.log performance-comparison-$app.pdf
./box-plot-norm.R performance-norm.log performance-comparison-$app-norm.pdf
"$this_dir/box-plot.R" performance.log performance-comparison-$app.pdf
"$this_dir/box-plot-norm.R" performance-norm.log performance-comparison-$app-norm.pdf
./clean-up.sh -a $app
"$this_dir/clean-up.sh" -a $app

View file

@ -1,7 +1,12 @@
#!/usr/bin/env bash
set -eo pipefail
this=`basename $0`
show_help() {
cat << EOF
Usage: ${0##*/} [-a APPLICATION_NAME]
Usage: $this [-a APPLICATION_NAME]
Clean-up pods with and without discovery enabled for the specified application.
-a APPLICATION_NAME clean-up the pods with APPLICATION_NAME application.

View file

@ -2,24 +2,6 @@ apiVersion: v1
kind: Pod
metadata:
name: demo-cloverleaf-NUM
annotations:
scheduler.alpha.kubernetes.io/affinity: |
{
"nodeAffinity": {
"requiredDuringSchedulingIgnoredDuringExecution": {
"nodeSelectorTerms": [
{
"matchExpressions": [
{
"key": "feature.node.kubernetes.io/cpu-pstate.turbo",
"operator": "DoesNotExist"
}
]
}
]
}
}
}
spec:
containers:
- name: demo-container-cloverleaf-NUM
@ -27,4 +9,6 @@ spec:
ports:
- containerPort: 3551
hostPort: 10001
nodeSelector:
feature.node.kubernetes.io/cpu-pstate.turbo: 'false'
restartPolicy: Never

View file

@ -1,7 +1,13 @@
#!/usr/bin/env bash
set -eo pipefail
this=`basename $0`
this_dir=`dirname $0`
show_help() {
cat << EOF
Usage: ${0##*/} [-a APPLICATION_NAME]
Usage: $this [-a APPLICATION_NAME]
Runs pods ten times with discovery enabled.
-a APPLICATION_NAME run the pods with APPLICATION_NAME application.
@ -49,14 +55,12 @@ for i in {1..10}
do
if [ "$app" == "parsec" ]
then
sed -e "s/NUM/$i-with-discovery/" -e "s/APP/demo-1/" demo-pod-with-discovery.yaml.parsec.template > demo-pod-with-discovery.yaml
kubectl create -f demo-pod-with-discovery.yaml
sed -e "s/NUM/$i-with-discovery/" -e "s/APP/demo-1/" \
"$this_dir/demo-pod-with-discovery.yaml.parsec.template" | kubectl create -f -
else
sed -e "s/NUM/$i-with-discovery/" -e "s/APP/demo-2/" demo-pod-with-discovery.yaml.cloverleaf.template > demo-pod-with-discovery.yaml
kubectl create -f demo-pod-with-discovery.yaml
sed -e "s/NUM/$i-with-discovery/" -e "s/APP/demo-2/" \
"$this_dir/demo-pod-with-discovery.yaml.cloverleaf.template" | kubectl create -f -
fi
echo "WithDiscovery" >> labels-with-discovery-$app.log
done
echo "Ten pods with node feature discovery enabled started."
rm -f demo-pod-with-discovery.yaml

View file

@ -1,7 +1,13 @@
#!/usr/bin/env bash
set -eo pipefail
this=`basename $0`
this_dir=`dirname $0`
show_help() {
cat << EOF
Usage: ${0##*/} [-a APPLICATION_NAME]
Usage: $this [-a APPLICATION_NAME]
Runs ten pods without discovery enabled with the specified application.
-a APPLICATION_NAME run the pods with APPLICATION_NAME application.
@ -49,13 +55,12 @@ for i in {1..10}
do
if [ "$app" == "parsec" ]
then
sed -e "s/NUM/$i-wo-discovery/" -e "s/IMG/demo-1/" -e "s/APP/$app/" demo-pod-without-discovery.yaml.template > demo-pod-without-discovery.yaml
sed -e "s/NUM/$i-wo-discovery/" -e "s/IMG/demo-1/" -e "s/APP/$app/" \
"$this_dir/demo-pod-without-discovery.yaml.template" | kubectl create -f -
else
sed -e "s/NUM/$i-wo-discovery/" -e "s/IMG/demo-2/" -e "s/APP/$app/" demo-pod-without-discovery.yaml.template > demo-pod-without-discovery.yaml
sed -e "s/NUM/$i-wo-discovery/" -e "s/IMG/demo-2/" -e "s/APP/$app/" \
"$this_dir/demo-pod-without-discovery.yaml.template" | kubectl create -f -
fi
kubectl create -f demo-pod-without-discovery.yaml
echo "WithoutDiscovery" >> labels-without-discovery-$app.log
done
echo "Ten pods without node feature discovery started."
rm -f demo-pod-without-discovery.yaml