kubecost / kubectl-cost

CLI for determining the cost of Kubernetes workloads
Apache License 2.0
872 stars 55 forks source link

Add --show-total to show full cost alongside diff and --hide-diff to hide diff info #146

Closed michaelmdresser closed 1 year ago

michaelmdresser commented 1 year ago

What does this PR change?

See release note.

How does this PR impact users? (This is the kind of thing that goes in release notes!)

Links to Issues or ZD tickets this PR addresses or fixes

https://kubecost.atlassian.net/browse/CORE-113

How was this PR tested?

→ go run cmd/kubectl-cost/kubectl-cost.go predict -r michaelkc -f ./test/multi.yaml --show-total
 OBJECT                      QTY  Δ QTY  RESOURCE UNIT   COST PER UNIT      COST/MO     Δ COST/MO    % CHANGE 
──────────────────────────────────────────────────────────────────────────────────────────────────────────────
 default deployment            9  +8.97  CPU cores           23.08 USD   207.68 USD   +206.99 USD  +29900.00% 
 nginx-deployment                                                                                             
                               6  +5.94  RAM GiB              3.09 USD    18.56 USD    +18.38 USD  +10140.00% 

──────────────────────────────────────────────────────────────────────────────────────────────────────────────
 kubecost deployment          15    +15  CPU millicores      0.023 USD     0.35 USD     +0.35 USD             
 kubecost-cost-analyzer                                                                                       
                               9     +9  RAM MiB            0.0030 USD     0.03 USD     +0.03 USD             

──────────────────────────────────────────────────────────────────────────────────────────────────────────────
 michaelkc deployment          1   -209  CPU millicores      0.023 USD     0.02 USD     -4.82 USD     -99.52% 
 michaelkc-cost-analyzer                                                                                      
                               1   -109  RAM MiB            0.0030 USD     0.00 USD     -0.33 USD     -99.09% 

──────────────────────────────────────────────────────────────────────────────────────────────────────────────
 default deployment           10    +10  CPU cores           23.08 USD   230.76 USD   +230.76 USD             
 nginx-deployment-2                                                                                           
                              35    +35  RAM GiB              3.09 USD   108.26 USD   +108.26 USD             

                               5     +5  GPUs               693.50 USD  3467.50 USD  +3467.50 USD             

──────────────────────────────────────────────────────────────────────────────────────────────────────────────
 default pod nginx-pod       350   +350  CPU millicores      0.023 USD     8.08 USD     +8.08 USD             
                             200   +200  RAM MiB            0.0030 USD     0.60 USD     +0.60 USD             
                            ──────────────────────────────────────────────────────────────────────────────────
                             350   +350  CPU millicores      0.023 USD     8.08 USD     +8.08 USD             
                             200   +200  RAM MiB            0.0030 USD     0.60 USD     +0.60 USD             
                               3     +3  GPUs               693.50 USD  2080.50 USD  +2080.50 USD             
──────────────────────────────────────────────────────────────────────────────────────────────────────────────
 TOTAL MONTHLY COST                                                     6131.02 USD  +6124.97 USD             
→ go run cmd/kubectl-cost/kubectl-cost.go predict -r michaelkc -f ./test/multi.yaml --show-total --hide-diff
 OBJECT                      QTY  RESOURCE UNIT   COST PER UNIT      COST/MO 
─────────────────────────────────────────────────────────────────────────────
 default deployment            9  CPU cores           23.08 USD   207.68 USD 
 nginx-deployment                                                            
                               6  RAM GiB              3.09 USD    18.56 USD 

─────────────────────────────────────────────────────────────────────────────
 kubecost deployment          15  CPU millicores      0.023 USD     0.35 USD 
 kubecost-cost-analyzer                                                      
                               9  RAM MiB            0.0030 USD     0.03 USD 

─────────────────────────────────────────────────────────────────────────────
 michaelkc deployment          1  CPU millicores      0.023 USD     0.02 USD 
 michaelkc-cost-analyzer                                                     
                               1  RAM MiB            0.0030 USD     0.00 USD 

─────────────────────────────────────────────────────────────────────────────
 default deployment           10  CPU cores           23.08 USD   230.76 USD 
 nginx-deployment-2                                                          
                              35  RAM GiB              3.09 USD   108.26 USD 

                               5  GPUs               693.50 USD  3467.50 USD 

─────────────────────────────────────────────────────────────────────────────
 default pod nginx-pod       350  CPU millicores      0.023 USD     8.08 USD 
                             200  RAM MiB            0.0030 USD     0.60 USD 
                            ─────────────────────────────────────────────────
                             350  CPU millicores      0.023 USD     8.08 USD 
                             200  RAM MiB            0.0030 USD     0.60 USD 
                               3  GPUs               693.50 USD  2080.50 USD 
─────────────────────────────────────────────────────────────────────────────
 TOTAL MONTHLY COST                                              6131.02 USD 
→ go run cmd/kubectl-cost/kubectl-cost.go predict -r michaelkc -f ./test/multi.yaml --hide-diff           
Error: validate: validating display options: ShowTotal and HideDiff cannot be set such that no data will be shown
exit status 1

Have you made an update to documentation?

Yes, the help text.