diff --git a/validate/Makefile b/validate/Makefile index c6d111c..1166213 100644 --- a/validate/Makefile +++ b/validate/Makefile @@ -1,4 +1,4 @@ -.PHONY: help setup security-test performance-test operations-test clean +.PHONY: help setup security-test performance-test operations-test clean cpu-bench cpu-bench-baseline clean-cpu-bench membench membench-baseline clean-membench help: @echo "POV Validation Test Suite" @@ -22,6 +22,10 @@ help: @echo " make sysbench-compare - Run sysbench with comparison table" @echo " make kcbench - Run kcbench CPU benchmark (kernel compile)" @echo " make kcbench-baseline - Run kcbench baseline (without Edera)" + @echo " make cpu-bench - Deploy CPU benchmark pod (Edera)" + @echo " make cpu-bench-baseline - Deploy CPU benchmark pod (baseline)" + @echo " make membench - Deploy memory benchmark pod (Edera)" + @echo " make membench-baseline - Deploy memory benchmark pod (baseline)" @echo "" @echo "Operations Tests:" @echo " make grafana-install - Install Prometheus/Grafana stack" @@ -214,6 +218,30 @@ kcbench-baseline: @echo "" kubectl logs job/kcbench-baseline +# CPU Benchmarking +cpu-bench: + kubectl apply -f performance/bench-edera.yaml + kubectl wait --for=condition=Ready pod/bench-edera --timeout=120s + +cpu-bench-baseline: + kubectl apply -f performance/bench-baseline.yaml + kubectl wait --for=condition=Ready pod/bench-baseline --timeout=120s + +clean-cpu-bench: + -kubectl delete pod bench-edera bench-baseline --ignore-not-found + +# Memory Benchmarking +membench: + kubectl apply -f performance/membench-edera.yaml + kubectl wait --for=condition=Ready pod/membench-edera --timeout=120s + +membench-baseline: + kubectl apply -f performance/membench-baseline.yaml + kubectl wait --for=condition=Ready pod/membench-baseline --timeout=120s + +clean-membench: + -kubectl delete pod membench-edera membench-baseline --ignore-not-found + # Operations Tests grafana-install: helm repo add prometheus-community https://prometheus-community.github.io/helm-charts @@ -262,5 +290,5 @@ clean-operations: -helm uninstall prometheus -n monitoring -kubectl delete namespace monitoring -clean: clean-security clean-performance clean-operations +clean: clean-security clean-performance clean-operations clean-cpu-bench clean-membench @echo "All POV test resources removed" diff --git a/validate/performance/bench-baseline.yaml b/validate/performance/bench-baseline.yaml new file mode 100644 index 0000000..d3c3663 --- /dev/null +++ b/validate/performance/bench-baseline.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Pod +metadata: + name: bench-baseline + labels: + app: cpu-bench +spec: + restartPolicy: Never + containers: + - name: bench + image: alpine:3.21 + command: ["sh", "-c", "apk add --no-cache sysbench > /dev/null 2>&1 && sleep infinity"] + resources: + requests: + cpu: "8" + memory: 2Gi + limits: + cpu: "8" + memory: 2Gi diff --git a/validate/performance/bench-edera.yaml b/validate/performance/bench-edera.yaml new file mode 100644 index 0000000..0a3ebde --- /dev/null +++ b/validate/performance/bench-edera.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: Pod +metadata: + name: bench-edera + labels: + app: cpu-bench + annotations: + dev.edera/cpu: "8" +spec: + runtimeClassName: edera + restartPolicy: Never + containers: + - name: bench + image: alpine:3.21 + command: ["sh", "-c", "apk add --no-cache sysbench > /dev/null 2>&1 && sleep infinity"] + resources: + requests: + cpu: "8" + memory: 2Gi + limits: + cpu: "8" + memory: 2Gi diff --git a/validate/performance/membench-baseline.yaml b/validate/performance/membench-baseline.yaml new file mode 100644 index 0000000..f2a9030 --- /dev/null +++ b/validate/performance/membench-baseline.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Pod +metadata: + name: membench-baseline + labels: + app: mem-bench +spec: + restartPolicy: Never + containers: + - name: bench + image: alpine:3.21 + command: ["sh", "-c", "apk add --no-cache sysbench > /dev/null 2>&1 && sleep infinity"] + resources: + requests: + cpu: "8" + memory: 2Gi + limits: + cpu: "8" + memory: 2Gi diff --git a/validate/performance/membench-edera.yaml b/validate/performance/membench-edera.yaml new file mode 100644 index 0000000..4be9afc --- /dev/null +++ b/validate/performance/membench-edera.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: Pod +metadata: + name: membench-edera + labels: + app: mem-bench + annotations: + dev.edera/cpu: "8" +spec: + runtimeClassName: edera + restartPolicy: Never + containers: + - name: bench + image: alpine:3.21 + command: ["sh", "-c", "apk add --no-cache sysbench > /dev/null 2>&1 && sleep infinity"] + resources: + requests: + cpu: "8" + memory: 2Gi + limits: + cpu: "8" + memory: 2Gi