1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-03-06 16:06:56 +00:00
kyverno/test/load/k6/reports-size-in-etcd.sh
Khaled Emara 0b6d053545
feat(ci): enhance load testing (#11429)
Signed-off-by: Khaled Emara <khaled.emara@nirmata.com>
Co-authored-by: shuting <shuting@nirmata.com>
2024-10-18 10:20:12 +00:00

49 lines
1.4 KiB
Bash
Executable file

#!/bin/bash
# Function to execute etcdctl commands
execute_etcdctl() {
local key=$1
local options=$2
kubectl -n kube-system exec etcd-kind-control-plane -- sh -c \
"ETCDCTL_API=3 etcdctl --cacert /etc/kubernetes/pki/etcd/ca.crt \
--key /etc/kubernetes/pki/etcd/server.key \
--cert /etc/kubernetes/pki/etcd/server.crt \
get $key $options"
}
# Function to extract size and metadata
get_key_info() {
local key=$1
local size=$(execute_etcdctl "$key" "--print-value-only" | wc -c)
local count=$(execute_etcdctl "$key" "--write-out=fields" | grep "Count" | cut -f2 -d':')
if [ "$count" -ne 0 ]; then
local versions=$(execute_etcdctl "$key" "--write-out=fields" | grep "Version" | cut -f2 -d':')
else
local versions=0
fi
# Return size, count, and versions as a string
echo "$size $count $versions"
}
# Initialize sum
total_size=0
output_file="/tmp/etcdkeys.txt"
# Get list of policy report keys
keys=$(execute_etcdctl "/registry/wgpolicyk8s.io/policyreports" "--prefix --keys-only")
# Process each key
for key in $keys; do
read size count versions <<< $(get_key_info "$key")
total=$((size * versions))
total_size=$((total_size + total))
# Log to output file
echo "$total_size $total $size $versions $count $key" >> "$output_file"
done
# Print final total size
echo "The total size for Policy Reports is $total_size bytes."