Files
kubesphere/pkg/simple/client/metering/options.go
2021-04-20 11:40:23 +08:00

44 lines
1.7 KiB
Go

package metering
type PriceInfo struct {
// currency unit, currently support CNY and USD
CpuPerCorePerHour float64 `json:"cpuPerCorePerHour" yaml:"cpuPerCorePerHour"`
// cpu cost with above currency unit for per core per hour
MemPerGigabytesPerHour float64 `json:"memPerGigabytesPerHour" yaml:"memPerGigabytesPerHour"`
// mem cost with above currency unit for per GB per hour
IngressNetworkTrafficPerMegabytesPerHour float64 `json:"ingressNetworkTrafficPerMegabytesPerHour" yaml:"ingressNetworkTrafficPerGiagabytesPerHour"`
// ingress network traffic cost with above currency unit for per MB per hour
EgressNetworkTrafficPerMegabytesPerHour float64 `json:"egressNetworkTrafficPerMegabytesPerHour" yaml:"egressNetworkTrafficPerGigabytesPerHour"`
// egress network traffice cost with above currency unit for per MB per hour
PvcPerGigabytesPerHour float64 `json:"pvcPerGigabytesPerHour" yaml:"pvcPerGigabytesPerHour"`
// pvc cost with above currency unit for per GB per hour
CurrencyUnit string `json:"currencyUnit" yaml:"currencyUnit"`
}
type Billing struct {
PriceInfo PriceInfo `json:"priceInfo" yaml:"priceInfo"`
}
type Options struct {
RetentionDay string `json:"retentionDay" yaml:"retentionDay"`
Billing Billing `json:"billing" yaml:"billing"`
}
var DefaultMeteringOption = Options{
RetentionDay: "7d",
Billing: Billing{
PriceInfo: PriceInfo{
CpuPerCorePerHour: 0,
MemPerGigabytesPerHour: 0,
IngressNetworkTrafficPerMegabytesPerHour: 0,
EgressNetworkTrafficPerMegabytesPerHour: 0,
PvcPerGigabytesPerHour: 0,
CurrencyUnit: "",
},
},
}
func NewMeteringOptions() *Options {
return &Options{}
}