| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- package basic
- import (
- "github.com/opencost/opencost/core/pkg/pricing"
- "github.com/opencost/opencost/core/pkg/unit"
- )
- const DefaultClusterPricePerHour float64 = 0.0
- const DefaultNetworkLocalEgressPricePerGiB float64 = 0.0
- const DefaultNetworkCrossZoneEgressPricePerGiB float64 = 0.01
- const DefaultNetworkCrossRegionEgressPricePerGiB float64 = 0.01
- const DefaultNetworkInternetEgressPricePerGiB float64 = 0.143
- const DefaultNetworkNATGatewayEgressPricePerGiB float64 = 0.045
- const DefaultNetworkNATGatewayIngressPricePerGiB float64 = 0.045
- const DefaultNodePricePerVCPUHour float64 = 0.031611
- const DefaultNodePricePerRAMGiBHour float64 = 0.004237
- const DefaultNodePricePerGPUHour float64 = 0.95
- const DefaultNodePricePerLocalDiskGiBHour float64 = 0.0001096
- const DefaultPersistentVolumePricePerGiBHour float64 = 0.00005479452
- const DefaultServicePricePerHour float64 = 0.025
- func GetDefaultPricingSet() *pricing.PricingSet {
- return &pricing.PricingSet{
- ClusterPricing: GetDefaultClusterPricing(),
- NetworkPricing: GetDefaultNetworkPricing(),
- NodePricing: GetDefaultNodePricing(),
- PersistentVolumePricing: GetDefaultPersistentVolumePricing(),
- ServicePricing: GetDefaultServicePricing(),
- }
- }
- func GetDefaultClusterPricing() []*pricing.ClusterPricing {
- return []*pricing.ClusterPricing{
- {
- Properties: pricing.ClusterPricingProperties{},
- Prices: pricing.Prices{
- pricing.ResourceCluster: {
- Unit: unit.Hour,
- Price: DefaultClusterPricePerHour,
- },
- },
- },
- }
- }
- func GetDefaultNetworkPricing() []*pricing.NetworkPricing {
- return []*pricing.NetworkPricing{
- {
- Properties: pricing.NetworkPricingProperties{},
- Prices: pricing.Prices{
- pricing.ResourceLocalEgress: {
- Unit: unit.GiB,
- Price: DefaultNetworkLocalEgressPricePerGiB,
- },
- pricing.ResourceCrossZoneEgress: {
- Unit: unit.GiB,
- Price: DefaultNetworkCrossZoneEgressPricePerGiB,
- },
- pricing.ResourceCrossRegionEgress: {
- Unit: unit.GiB,
- Price: DefaultNetworkCrossRegionEgressPricePerGiB,
- },
- pricing.ResourceInternetEgress: {
- Unit: unit.GiB,
- Price: DefaultNetworkInternetEgressPricePerGiB,
- },
- pricing.ResourceNATGatewayEgress: {
- Unit: unit.GiB,
- Price: DefaultNetworkNATGatewayEgressPricePerGiB,
- },
- pricing.ResourceNATGatewayIngress: {
- Unit: unit.GiB,
- Price: DefaultNetworkNATGatewayIngressPricePerGiB,
- },
- },
- },
- }
- }
- func GetDefaultNodePricing() []*pricing.NodePricing {
- return []*pricing.NodePricing{
- {
- Properties: pricing.NodePricingProperties{},
- Prices: pricing.Prices{
- pricing.ResourceCPU: {
- Unit: unit.VCPUHour,
- Price: DefaultNodePricePerVCPUHour,
- },
- pricing.ResourceRAM: {
- Unit: unit.GiBHour,
- Price: DefaultNodePricePerRAMGiBHour,
- },
- pricing.ResourceGPU: {
- Unit: unit.GPUHour,
- Price: DefaultNodePricePerGPUHour,
- },
- pricing.ResourceStorage: {
- Unit: unit.GiBHour,
- Price: DefaultNodePricePerLocalDiskGiBHour,
- },
- },
- },
- }
- }
- func GetDefaultPersistentVolumePricing() []*pricing.PersistentVolumePricing {
- return []*pricing.PersistentVolumePricing{
- {
- Properties: pricing.PersistentVolumePricingProperties{},
- Prices: pricing.Prices{
- pricing.ResourceStorage: {
- Unit: unit.GiBHour,
- Price: DefaultPersistentVolumePricePerGiBHour,
- },
- },
- },
- }
- }
- func GetDefaultServicePricing() []*pricing.ServicePricing {
- return []*pricing.ServicePricing{
- {
- Properties: pricing.ServicePricingProperties{},
- Prices: pricing.Prices{
- pricing.ResourceService: {
- Unit: unit.Hour,
- Price: DefaultServicePricePerHour,
- },
- },
- },
- }
- }
|