wi2l / kubectl-vpa-recommendation Goto Github PK
View Code? Open in Web Editor NEWkubectl plugin to compare VPA recommendations to actual resources requests
License: MIT License
kubectl plugin to compare VPA recommendations to actual resources requests
License: MIT License
Running:
kubectl vpa-recommendation --show-stats --output wide --sort-columns mem-diff,cpu-diff
I get the following error:
NAME MODE TARGET CPU REQUEST CPU TARGET % CPU DIFF MEMORY REQUEST MEMORY TARGET % MEMORY DIFF
panic: division by zero
goroutine 1 [running]:
math/big.nat.div({0x0?, 0x1?, 0x0?}, {0x0?, 0x0?, 0xc00012f0d8?}, {0x0?, 0xc000708450?, 0x1000000000001?}, {0x0, ...})
/opt/hostedtoolcache/go/1.19.2/x64/src/math/big/natdiv.go:507 +0x34b
math/big.(*Int).Quo(0xc0005c7410, 0xc0005c73b0, 0xc0005c73e0)
/opt/hostedtoolcache/go/1.19.2/x64/src/math/big/int.go:211 +0x78
gopkg.in/inf%2ev0.(*Dec).quoRem(0xc0005c7410, 0xc0005c73b0, 0xc0005c73e0, 0x0, 0x0, 0x0, 0x0)
/home/runner/go/pkg/mod/gopkg.in/[email protected]/dec.go:331 +0x654
gopkg.in/inf%2ev0.(*Dec).quo(0xc000422c80?, 0x0?, 0x28?, {0x1b350e0?, 0x269f140?}, {0x1b3bbf8, 0xc0000b3610})
/home/runner/go/pkg/mod/gopkg.in/[email protected]/dec.go:267 +0x14b
gopkg.in/inf%2ev0.(*Dec).QuoRound(...)
/home/runner/go/pkg/mod/gopkg.in/[email protected]/dec.go:257
github.com/wI2L/kubectl-vpa-recommendation/cli.table.meanQuantities({0x0?, 0x0, 0x176d820?}, 0xc0005c7201?)
/home/runner/work/kubectl-vpa-recommendation/kubectl-vpa-recommendation/cli/table.go:299 +0xc5
github.com/wI2L/kubectl-vpa-recommendation/cli.table.printStats({0x0?, 0x0, 0x0}, {0x1b33fc0?, 0xc000012018?})
/home/runner/work/kubectl-vpa-recommendation/kubectl-vpa-recommendation/cli/table.go:243 +0x604
github.com/wI2L/kubectl-vpa-recommendation/cli.table.Print({0x0, 0x0, 0x0}, {0x1b33fc0, 0xc000012018}, 0xc0001f0360)
/home/runner/work/kubectl-vpa-recommendation/kubectl-vpa-recommendation/cli/table.go:200 +0x618
github.com/wI2L/kubectl-vpa-recommendation/cli.(*CommandOptions).Execute(0xc000424000)
/home/runner/work/kubectl-vpa-recommendation/kubectl-vpa-recommendation/cli/command.go:204 +0x66b
github.com/wI2L/kubectl-vpa-recommendation/cli.(*CommandOptions).Run(0x128aee0?, 0xc0000f9c00?, {0xc0003fc5b0, 0x0, 0x7})
/home/runner/work/kubectl-vpa-recommendation/kubectl-vpa-recommendation/cli/command.go:103 +0x7b
github.com/spf13/cobra.(*Command).execute(0xc000357400, {0xc00003e090, 0x7, 0x7})
/home/runner/go/pkg/mod/github.com/spf13/[email protected]/command.go:860 +0x663
github.com/spf13/cobra.(*Command).ExecuteC(0xc000357400)
/home/runner/go/pkg/mod/github.com/spf13/[email protected]/command.go:974 +0x3bd
github.com/spf13/cobra.(*Command).Execute(...)
/home/runner/go/pkg/mod/github.com/spf13/[email protected]/command.go:902
k8s.io/component-base/cli.run(0xc000357400)
/home/runner/go/pkg/mod/k8s.io/[email protected]/cli/run.go:146 +0x317
k8s.io/component-base/cli.Run(0xc0000e7d00?)
/home/runner/go/pkg/mod/k8s.io/[email protected]/cli/run.go:46 +0x1d
main.main()
/home/runner/work/kubectl-vpa-recommendation/kubectl-vpa-recommendation/cmd/kubectl-vpa-recommendation/kubectl-vpa-recommendation.go:44 +0x145
It seems like
meanQuantities chokes on some of our vpa's recommandations. I have dumped the vpas to yaml but there is a ton of internal info in those, so I'm not sure if I can share those.
Most of them have one container with something like this:
- containerName: webservices
lowerBound:
cpu: 15m
memory: "248036781"
target:
cpu: 15m
memory: "272061154"
uncappedTarget:
cpu: 15m
memory: "272061154"
upperBound:
cpu: 15m
memory: "336054630"
and a couple will have two containers.
EDIT: Alright kubectl vpa-recommendation
doesn't actually return any VPAs. All our VPAs target a custom CRD, might that be the issue? Seems like it doesn't realize the number of matched VPAs is actually 0 because they are all targeting some unsupported kind.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.