default.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package basic
  2. import (
  3. "github.com/opencost/opencost/core/pkg/pricing"
  4. "github.com/opencost/opencost/core/pkg/unit"
  5. )
  6. const DefaultNodePricePerVCPUHour float64 = 0.031611
  7. const DefaultNodePricePerRAMGiBHour float64 = 0.004237
  8. const DefaultNodePricePerGPUHour float64 = 0.95
  9. const DefaultNodePricePerLocalDiskGiBHour float64 = 0.0001096
  10. const DefaultVolumePricePerGiBHour float64 = 0.00005479452
  11. func GetDefaultPricingSet() *pricing.PricingSet {
  12. return &pricing.PricingSet{
  13. Nodes: []*pricing.NodePricing{GetDefaultNodePricing()},
  14. Volumes: []*pricing.VolumePricing{GetDefaultVolumePricing()},
  15. }
  16. }
  17. func GetDefaultNodePricing() *pricing.NodePricing {
  18. return &pricing.NodePricing{
  19. Properties: pricing.NodePricingProperties{},
  20. Prices: pricing.Prices{
  21. unit.USD: []pricing.Price{
  22. {
  23. Currency: unit.USD,
  24. Unit: unit.VCPUHour,
  25. Price: DefaultNodePricePerVCPUHour,
  26. },
  27. {
  28. Currency: unit.USD,
  29. Unit: unit.RAMGiBHour,
  30. Price: DefaultNodePricePerRAMGiBHour,
  31. },
  32. {
  33. Currency: unit.USD,
  34. Unit: unit.GPUHour,
  35. Price: DefaultNodePricePerGPUHour,
  36. },
  37. {
  38. Currency: unit.USD,
  39. Unit: unit.StorageGiBHour,
  40. Price: DefaultNodePricePerLocalDiskGiBHour,
  41. },
  42. },
  43. },
  44. }
  45. }
  46. func GetDefaultVolumePricing() *pricing.VolumePricing {
  47. return &pricing.VolumePricing{
  48. Properties: pricing.VolumePricingProperties{},
  49. Prices: pricing.Prices{
  50. unit.USD: []pricing.Price{
  51. {
  52. Currency: unit.USD,
  53. Unit: unit.StorageGiBHour,
  54. Price: DefaultVolumePricePerGiBHour,
  55. },
  56. },
  57. },
  58. }
  59. }