Skip to content

Instantly share code, notes, and snippets.

@dannysauer
Last active March 1, 2021 18:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dannysauer/eff565d06f2ecb9391f80da2ad3b8206 to your computer and use it in GitHub Desktop.
Save dannysauer/eff565d06f2ecb9391f80da2ad3b8206 to your computer and use it in GitHub Desktop.
K8S secret storage "benchmark"
#!/bin/bash
set -o errexit
output_every=100
separator='###'
secret_template='---
apiVersion: v1
kind: Secret
metadata:
name: secret$I
type: Opaque
data:
randomvalue: $( base64 <<<$RANDOM )
'
function dobench {
echo "$separator"
/usr/bin/time kubectl get secrets -o name | { echo "listed $(grep -c 'secret[0-9]') secrets"; }
secret="secret$(( 1 + $RANDOM % $I ))"
data=$( /usr/bin/time kubectl get secret "$secret" -o jsonpath='{.data}' )
echo "got '$secret' ($data)"
}
begin_create=$( date +%s )
for I in $( seq 1 $1 )
do
yaml=$( eval "cat <<<\"$secret_template\"" )
kubectl apply -f - <<<"$yaml" >/dev/null
if (( ! $(( $I % $output_every )) ))
then
dobench
#dobench &
fi
done
echo "create took $(( $( date +%s ) - $begin_create )) seconds"
#wait # wait for backgrounded dobench to return
# do one more output if we didn't end on a multiple of $output_every
(( $(( $I % $output_every )) )) && dobench
echo "$separator"
begin_delete=$( date +%s )
for I in $( seq 1 $1 )
do
echo "secret$I"
done | xargs kubectl delete secret >/dev/null
echo "delete took $(( $( date +%s ) - $begin_delete )) seconds"
# vim: ts=8 sw=4 et
###
0.19user 0.01system 0:00.17elapsed 122%CPU (0avgtext+0avgdata 43700maxresident)k
0inputs+0outputs (0major+919minor)pagefaults 0swaps
listed 100 secrets
0.09user 0.02system 0:00.10elapsed 114%CPU (0avgtext+0avgdata 41312maxresident)k
0inputs+0outputs (0major+858minor)pagefaults 0swaps
got 'secret14' (map[randomvalue:NjM2Cg==])
###
0.28user 0.02system 0:00.25elapsed 124%CPU (0avgtext+0avgdata 46628maxresident)k
0inputs+0outputs (0major+1059minor)pagefaults 0swaps
listed 200 secrets
0.11user 0.01system 0:00.10elapsed 115%CPU (0avgtext+0avgdata 41300maxresident)k
0inputs+0outputs (0major+837minor)pagefaults 0swaps
got 'secret141' (map[randomvalue:NzQ3NAo=])
###
0.34user 0.01system 0:00.29elapsed 121%CPU (0avgtext+0avgdata 47852maxresident)k
0inputs+0outputs (0major+1000minor)pagefaults 0swaps
listed 300 secrets
0.09user 0.02system 0:00.09elapsed 117%CPU (0avgtext+0avgdata 41448maxresident)k
0inputs+0outputs (0major+820minor)pagefaults 0swaps
got 'secret294' (map[randomvalue:MTA4NDYK])
###
0.43user 0.02system 0:00.38elapsed 115%CPU (0avgtext+0avgdata 50656maxresident)k
0inputs+0outputs (0major+1049minor)pagefaults 0swaps
listed 400 secrets
0.10user 0.01system 0:00.10elapsed 114%CPU (0avgtext+0avgdata 40976maxresident)k
0inputs+0outputs (0major+783minor)pagefaults 0swaps
got 'secret54' (map[randomvalue:MTc2OTMK])
###
0.52user 0.03system 0:00.45elapsed 122%CPU (0avgtext+0avgdata 50484maxresident)k
0inputs+0outputs (0major+1143minor)pagefaults 0swaps
listed 500 secrets
0.11user 0.02system 0:00.11elapsed 124%CPU (0avgtext+0avgdata 43536maxresident)k
0inputs+0outputs (0major+836minor)pagefaults 0swaps
got 'secret102' (map[randomvalue:MjIyOTUK])
###
0.56user 0.02system 0:00.49elapsed 120%CPU (0avgtext+0avgdata 52568maxresident)k
0inputs+0outputs (0major+1169minor)pagefaults 0swaps
listed 600 secrets
0.11user 0.01system 0:00.10elapsed 123%CPU (0avgtext+0avgdata 41728maxresident)k
0inputs+0outputs (0major+832minor)pagefaults 0swaps
got 'secret553' (map[randomvalue:NDg1Mgo=])
###
0.68user 0.03system 0:00.61elapsed 118%CPU (0avgtext+0avgdata 55144maxresident)k
0inputs+0outputs (0major+1252minor)pagefaults 0swaps
listed 700 secrets
0.09user 0.03system 0:00.10elapsed 114%CPU (0avgtext+0avgdata 43144maxresident)k
0inputs+0outputs (0major+807minor)pagefaults 0swaps
got 'secret312' (map[randomvalue:Mjk5MzkK])
###
0.67user 0.03system 0:00.62elapsed 113%CPU (0avgtext+0avgdata 58392maxresident)k
0inputs+0outputs (0major+1044minor)pagefaults 0swaps
listed 800 secrets
0.11user 0.01system 0:00.10elapsed 119%CPU (0avgtext+0avgdata 43668maxresident)k
0inputs+0outputs (0major+914minor)pagefaults 0swaps
got 'secret408' (map[randomvalue:MTIxNjUK])
###
0.80user 0.03system 0:00.70elapsed 119%CPU (0avgtext+0avgdata 59232maxresident)k
0inputs+0outputs (0major+1332minor)pagefaults 0swaps
listed 900 secrets
0.10user 0.01system 0:00.10elapsed 112%CPU (0avgtext+0avgdata 41688maxresident)k
0inputs+0outputs (0major+831minor)pagefaults 0swaps
got 'secret527' (map[randomvalue:MTIzMDkK])
###
0.83user 0.04system 0:00.74elapsed 118%CPU (0avgtext+0avgdata 61504maxresident)k
0inputs+0outputs (0major+1386minor)pagefaults 0swaps
listed 1000 secrets
0.11user 0.01system 0:00.11elapsed 110%CPU (0avgtext+0avgdata 41516maxresident)k
0inputs+0outputs (0major+859minor)pagefaults 0swaps
got 'secret44' (map[randomvalue:MjI1Mwo=])
###
0.95user 0.05system 0:00.84elapsed 118%CPU (0avgtext+0avgdata 63548maxresident)k
0inputs+0outputs (0major+1292minor)pagefaults 0swaps
listed 1100 secrets
0.09user 0.01system 0:00.11elapsed 106%CPU (0avgtext+0avgdata 43512maxresident)k
0inputs+0outputs (0major+835minor)pagefaults 0swaps
got 'secret903' (map[randomvalue:MTU0OTMK])
###
1.05user 0.04system 0:00.91elapsed 119%CPU (0avgtext+0avgdata 61352maxresident)k
0inputs+0outputs (0major+1335minor)pagefaults 0swaps
listed 1200 secrets
0.11user 0.01system 0:00.10elapsed 117%CPU (0avgtext+0avgdata 42828maxresident)k
0inputs+0outputs (0major+833minor)pagefaults 0swaps
got 'secret619' (map[randomvalue:MzM1Mwo=])
###
1.13user 0.02system 0:00.97elapsed 119%CPU (0avgtext+0avgdata 65468maxresident)k
0inputs+0outputs (0major+1176minor)pagefaults 0swaps
listed 1300 secrets
0.11user 0.00system 0:00.10elapsed 114%CPU (0avgtext+0avgdata 41084maxresident)k
0inputs+0outputs (0major+823minor)pagefaults 0swaps
got 'secret929' (map[randomvalue:MTg3ODUK])
###
1.17user 0.04system 0:01.01elapsed 119%CPU (0avgtext+0avgdata 66448maxresident)k
0inputs+0outputs (0major+1505minor)pagefaults 0swaps
listed 1400 secrets
0.09user 0.03system 0:00.10elapsed 117%CPU (0avgtext+0avgdata 40944maxresident)k
0inputs+0outputs (0major+811minor)pagefaults 0swaps
got 'secret1143' (map[randomvalue:Mjk0MTEK])
###
1.29user 0.02system 0:01.10elapsed 119%CPU (0avgtext+0avgdata 70296maxresident)k
0inputs+0outputs (0major+1610minor)pagefaults 0swaps
listed 1500 secrets
0.10user 0.02system 0:00.10elapsed 122%CPU (0avgtext+0avgdata 42672maxresident)k
0inputs+0outputs (0major+844minor)pagefaults 0swaps
got 'secret1102' (map[randomvalue:NDYxNgo=])
###
1.31user 0.06system 0:02.21elapsed 62%CPU (0avgtext+0avgdata 72228maxresident)k
0inputs+0outputs (0major+1574minor)pagefaults 0swaps
listed 1600 secrets
0.10user 0.01system 0:00.09elapsed 121%CPU (0avgtext+0avgdata 40780maxresident)k
0inputs+0outputs (0major+805minor)pagefaults 0swaps
got 'secret948' (map[randomvalue:MjY2MjIK])
###
1.48user 0.05system 0:01.28elapsed 119%CPU (0avgtext+0avgdata 69944maxresident)k
0inputs+0outputs (0major+1525minor)pagefaults 0swaps
listed 1700 secrets
0.11user 0.02system 0:00.11elapsed 118%CPU (0avgtext+0avgdata 41560maxresident)k
0inputs+0outputs (0major+825minor)pagefaults 0swaps
got 'secret59' (map[randomvalue:MjU4NzAK])
###
1.50user 0.04system 0:01.40elapsed 110%CPU (0avgtext+0avgdata 72796maxresident)k
0inputs+0outputs (0major+1563minor)pagefaults 0swaps
listed 1800 secrets
0.12user 0.00system 0:00.10elapsed 121%CPU (0avgtext+0avgdata 41524maxresident)k
0inputs+0outputs (0major+821minor)pagefaults 0swaps
got 'secret20' (map[randomvalue:MzA5NTAK])
###
1.60user 0.03system 0:01.35elapsed 120%CPU (0avgtext+0avgdata 76848maxresident)k
0inputs+0outputs (0major+1612minor)pagefaults 0swaps
listed 1900 secrets
0.11user 0.01system 0:00.10elapsed 118%CPU (0avgtext+0avgdata 41756maxresident)k
0inputs+0outputs (0major+869minor)pagefaults 0swaps
got 'secret87' (map[randomvalue:Mjg1Mgo=])
###
1.69user 0.04system 0:01.54elapsed 112%CPU (0avgtext+0avgdata 70076maxresident)k
0inputs+0outputs (0major+1554minor)pagefaults 0swaps
listed 2000 secrets
0.11user 0.00system 0:00.10elapsed 118%CPU (0avgtext+0avgdata 41324maxresident)k
0inputs+0outputs (0major+837minor)pagefaults 0swaps
got 'secret904' (map[randomvalue:NzQzMgo=])
###
1.71user 0.06system 0:01.49elapsed 118%CPU (0avgtext+0avgdata 76996maxresident)k
0inputs+0outputs (0major+1647minor)pagefaults 0swaps
listed 2100 secrets
0.09user 0.01system 0:00.09elapsed 115%CPU (0avgtext+0avgdata 41208maxresident)k
0inputs+0outputs (0major+822minor)pagefaults 0swaps
got 'secret1552' (map[randomvalue:MTkyNDEK])
###
1.79user 0.02system 0:01.53elapsed 118%CPU (0avgtext+0avgdata 78556maxresident)k
0inputs+0outputs (0major+1673minor)pagefaults 0swaps
listed 2200 secrets
0.10user 0.00system 0:00.09elapsed 115%CPU (0avgtext+0avgdata 43616maxresident)k
0inputs+0outputs (0major+839minor)pagefaults 0swaps
got 'secret408' (map[randomvalue:MTIxNjUK])
###
1.84user 0.05system 0:01.59elapsed 118%CPU (0avgtext+0avgdata 82892maxresident)k
0inputs+0outputs (0major+1724minor)pagefaults 0swaps
listed 2300 secrets
0.11user 0.00system 0:00.10elapsed 113%CPU (0avgtext+0avgdata 41076maxresident)k
0inputs+0outputs (0major+813minor)pagefaults 0swaps
got 'secret106' (map[randomvalue:NDAyNQo=])
###
2.01user 0.02system 0:01.75elapsed 116%CPU (0avgtext+0avgdata 76484maxresident)k
0inputs+0outputs (0major+1652minor)pagefaults 0swaps
listed 2400 secrets
0.11user 0.01system 0:00.11elapsed 109%CPU (0avgtext+0avgdata 41016maxresident)k
0inputs+0outputs (0major+839minor)pagefaults 0swaps
got 'secret940' (map[randomvalue:MjkwMDUK])
###
2.02user 0.06system 0:01.76elapsed 118%CPU (0avgtext+0avgdata 81596maxresident)k
0inputs+0outputs (0major+1768minor)pagefaults 0swaps
listed 2500 secrets
0.12user 0.00system 0:00.10elapsed 120%CPU (0avgtext+0avgdata 43340maxresident)k
0inputs+0outputs (0major+824minor)pagefaults 0swaps
got 'secret1856' (map[randomvalue:MjgyMTcK])
###
2.05user 0.11system 0:01.79elapsed 121%CPU (0avgtext+0avgdata 83912maxresident)k
0inputs+0outputs (0major+1776minor)pagefaults 0swaps
listed 2600 secrets
0.10user 0.01system 0:00.10elapsed 115%CPU (0avgtext+0avgdata 41872maxresident)k
0inputs+0outputs (0major+864minor)pagefaults 0swaps
got 'secret1471' (map[randomvalue:MTk3NjEK])
###
2.12user 0.04system 0:01.87elapsed 116%CPU (0avgtext+0avgdata 81596maxresident)k
0inputs+0outputs (0major+1771minor)pagefaults 0swaps
listed 2700 secrets
0.11user 0.01system 0:00.11elapsed 111%CPU (0avgtext+0avgdata 41132maxresident)k
0inputs+0outputs (0major+815minor)pagefaults 0swaps
got 'secret1540' (map[randomvalue:OTkK])
###
2.30user 0.06system 0:01.94elapsed 122%CPU (0avgtext+0avgdata 91764maxresident)k
0inputs+0outputs (0major+1396minor)pagefaults 0swaps
listed 2800 secrets
0.09user 0.02system 0:00.10elapsed 112%CPU (0avgtext+0avgdata 44856maxresident)k
0inputs+0outputs (0major+735minor)pagefaults 0swaps
got 'secret446' (map[randomvalue:MTcxOTUK])
###
2.38user 0.06system 0:01.98elapsed 123%CPU (0avgtext+0avgdata 87804maxresident)k
0inputs+0outputs (0major+1979minor)pagefaults 0swaps
listed 2900 secrets
0.10user 0.01system 0:00.10elapsed 114%CPU (0avgtext+0avgdata 43300maxresident)k
0inputs+0outputs (0major+828minor)pagefaults 0swaps
got 'secret566' (map[randomvalue:MTQzNTkK])
###
2.54user 0.05system 0:02.09elapsed 123%CPU (0avgtext+0avgdata 91996maxresident)k
0inputs+0outputs (0major+1917minor)pagefaults 0swaps
listed 3000 secrets
0.11user 0.01system 0:00.10elapsed 120%CPU (0avgtext+0avgdata 41496maxresident)k
0inputs+0outputs (0major+843minor)pagefaults 0swaps
got 'secret2912' (map[randomvalue:Mjg4MDAK])
###
2.51user 0.06system 0:02.15elapsed 119%CPU (0avgtext+0avgdata 98596maxresident)k
0inputs+0outputs (0major+2101minor)pagefaults 0swaps
listed 3100 secrets
0.12user 0.00system 0:00.11elapsed 118%CPU (0avgtext+0avgdata 42812maxresident)k
0inputs+0outputs (0major+817minor)pagefaults 0swaps
got 'secret191' (map[randomvalue:Mjk4MDQK])
###
2.68user 0.06system 0:02.22elapsed 123%CPU (0avgtext+0avgdata 98944maxresident)k
0inputs+0outputs (0major+2045minor)pagefaults 0swaps
listed 3200 secrets
0.11user 0.01system 0:00.10elapsed 118%CPU (0avgtext+0avgdata 41248maxresident)k
0inputs+0outputs (0major+874minor)pagefaults 0swaps
got 'secret2611' (map[randomvalue:MTMzMjYK])
###
2.82user 0.05system 0:02.33elapsed 123%CPU (0avgtext+0avgdata 98344maxresident)k
0inputs+0outputs (0major+2020minor)pagefaults 0swaps
listed 3300 secrets
0.09user 0.01system 0:00.10elapsed 108%CPU (0avgtext+0avgdata 40900maxresident)k
0inputs+0outputs (0major+797minor)pagefaults 0swaps
got 'secret1752' (map[randomvalue:MTUwNwo=])
###
2.72user 0.08system 0:02.29elapsed 122%CPU (0avgtext+0avgdata 98664maxresident)k
0inputs+0outputs (0major+2089minor)pagefaults 0swaps
listed 3400 secrets
0.10user 0.02system 0:00.10elapsed 114%CPU (0avgtext+0avgdata 43256maxresident)k
0inputs+0outputs (0major+820minor)pagefaults 0swaps
got 'secret416' (map[randomvalue:MjU3NjcK])
###
2.77user 0.06system 0:02.39elapsed 118%CPU (0avgtext+0avgdata 96768maxresident)k
0inputs+0outputs (0major+2009minor)pagefaults 0swaps
listed 3500 secrets
0.12user 0.01system 0:00.11elapsed 114%CPU (0avgtext+0avgdata 41184maxresident)k
0inputs+0outputs (0major+816minor)pagefaults 0swaps
got 'secret2565' (map[randomvalue:Nzk3NQo=])
###
2.97user 0.06system 0:02.50elapsed 121%CPU (0avgtext+0avgdata 103452maxresident)k
0inputs+0outputs (0major+2142minor)pagefaults 0swaps
listed 3600 secrets
0.10user 0.01system 0:00.10elapsed 107%CPU (0avgtext+0avgdata 41528maxresident)k
0inputs+0outputs (0major+859minor)pagefaults 0swaps
got 'secret2385' (map[randomvalue:MTQ0NjMK])
###
2.96user 0.08system 0:02.50elapsed 121%CPU (0avgtext+0avgdata 107864maxresident)k
0inputs+0outputs (0major+2163minor)pagefaults 0swaps
listed 3700 secrets
0.10user 0.03system 0:00.11elapsed 126%CPU (0avgtext+0avgdata 41668maxresident)k
0inputs+0outputs (0major+880minor)pagefaults 0swaps
got 'secret269' (map[randomvalue:MjMxOTUK])
###
3.00user 0.07system 0:02.58elapsed 119%CPU (0avgtext+0avgdata 98536maxresident)k
0inputs+0outputs (0major+2128minor)pagefaults 0swaps
listed 3800 secrets
0.09user 0.02system 0:00.10elapsed 126%CPU (0avgtext+0avgdata 43844maxresident)k
0inputs+0outputs (0major+891minor)pagefaults 0swaps
got 'secret476' (map[randomvalue:MzExOTAK])
###
3.16user 0.08system 0:02.65elapsed 122%CPU (0avgtext+0avgdata 107224maxresident)k
0inputs+0outputs (0major+2220minor)pagefaults 0swaps
listed 3900 secrets
0.11user 0.00system 0:00.10elapsed 111%CPU (0avgtext+0avgdata 42832maxresident)k
0inputs+0outputs (0major+748minor)pagefaults 0swaps
got 'secret1425' (map[randomvalue:MTQ0OTkK])
###
3.22user 0.05system 0:02.75elapsed 119%CPU (0avgtext+0avgdata 105048maxresident)k
0inputs+0outputs (0major+2112minor)pagefaults 0swaps
listed 4000 secrets
0.09user 0.01system 0:00.11elapsed 100%CPU (0avgtext+0avgdata 43252maxresident)k
0inputs+0outputs (0major+863minor)pagefaults 0swaps
got 'secret3427' (map[randomvalue:MjEwMzgK])
###
3.32user 0.05system 0:02.78elapsed 121%CPU (0avgtext+0avgdata 107556maxresident)k
0inputs+0outputs (0major+1747minor)pagefaults 0swaps
listed 4100 secrets
0.10user 0.01system 0:00.10elapsed 113%CPU (0avgtext+0avgdata 41140maxresident)k
0inputs+0outputs (0major+803minor)pagefaults 0swaps
got 'secret3751' (map[randomvalue:MTYxOTUK])
###
3.38user 0.07system 0:02.85elapsed 121%CPU (0avgtext+0avgdata 111748maxresident)k
0inputs+0outputs (0major+2245minor)pagefaults 0swaps
listed 4200 secrets
0.10user 0.01system 0:00.10elapsed 117%CPU (0avgtext+0avgdata 41332maxresident)k
0inputs+0outputs (0major+838minor)pagefaults 0swaps
got 'secret2527' (map[randomvalue:MTI1MDIK])
###
3.56user 0.06system 0:02.94elapsed 122%CPU (0avgtext+0avgdata 113856maxresident)k
0inputs+0outputs (0major+2375minor)pagefaults 0swaps
listed 4300 secrets
0.10user 0.01system 0:00.10elapsed 117%CPU (0avgtext+0avgdata 41068maxresident)k
0inputs+0outputs (0major+844minor)pagefaults 0swaps
got 'secret545' (map[randomvalue:MjEyMjEK])
###
3.63user 0.07system 0:03.02elapsed 122%CPU (0avgtext+0avgdata 109752maxresident)k
0inputs+0outputs (0major+2251minor)pagefaults 0swaps
listed 4400 secrets
0.11user 0.01system 0:00.11elapsed 118%CPU (0avgtext+0avgdata 43460maxresident)k
0inputs+0outputs (0major+815minor)pagefaults 0swaps
got 'secret680' (map[randomvalue:NTA4Ngo=])
###
3.50user 0.07system 0:02.99elapsed 119%CPU (0avgtext+0avgdata 113516maxresident)k
0inputs+0outputs (0major+2270minor)pagefaults 0swaps
listed 4500 secrets
0.11user 0.00system 0:00.10elapsed 116%CPU (0avgtext+0avgdata 41660maxresident)k
0inputs+0outputs (0major+834minor)pagefaults 0swaps
got 'secret2201' (map[randomvalue:MTQ1MDgK])
###
3.73user 0.07system 0:03.16elapsed 120%CPU (0avgtext+0avgdata 112128maxresident)k
0inputs+0outputs (0major+2246minor)pagefaults 0swaps
listed 4600 secrets
0.10user 0.01system 0:00.10elapsed 115%CPU (0avgtext+0avgdata 40772maxresident)k
0inputs+0outputs (0major+824minor)pagefaults 0swaps
got 'secret146' (map[randomvalue:MTQzMTAK])
###
3.64user 0.08system 0:03.72elapsed 100%CPU (0avgtext+0avgdata 109940maxresident)k
0inputs+0outputs (0major+2300minor)pagefaults 0swaps
listed 4700 secrets
0.10user 0.01system 0:00.10elapsed 118%CPU (0avgtext+0avgdata 41332maxresident)k
0inputs+0outputs (0major+796minor)pagefaults 0swaps
got 'secret59' (map[randomvalue:MjU4NzAK])
###
3.87user 0.07system 0:03.23elapsed 121%CPU (0avgtext+0avgdata 115708maxresident)k
0inputs+0outputs (0major+2278minor)pagefaults 0swaps
listed 4800 secrets
0.10user 0.02system 0:00.10elapsed 120%CPU (0avgtext+0avgdata 43132maxresident)k
0inputs+0outputs (0major+866minor)pagefaults 0swaps
got 'secret291' (map[randomvalue:MTg1Cg==])
###
3.87user 0.12system 0:03.34elapsed 119%CPU (0avgtext+0avgdata 122820maxresident)k
0inputs+0outputs (0major+2497minor)pagefaults 0swaps
listed 4900 secrets
0.09user 0.01system 0:00.10elapsed 107%CPU (0avgtext+0avgdata 41136maxresident)k
0inputs+0outputs (0major+817minor)pagefaults 0swaps
got 'secret4066' (map[randomvalue:MzA2MTgK])
###
3.98user 0.10system 0:03.38elapsed 120%CPU (0avgtext+0avgdata 126156maxresident)k
0inputs+0outputs (0major+1778minor)pagefaults 0swaps
listed 5000 secrets
0.10user 0.01system 0:00.10elapsed 115%CPU (0avgtext+0avgdata 41540maxresident)k
0inputs+0outputs (0major+812minor)pagefaults 0swaps
got 'secret1577' (map[randomvalue:Mjc1OTAK])
create took 1318 seconds
###
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment