Просмотр исходного кода

Merge pull request #1505 from opencost/AjayTripathy-configurable-pricing-ep

add configurable pricing endpoint
Ajay Tripathy 3 лет назад
Родитель
Сommit
49f57a3eba
2 измененных файлов с 10 добавлено и 0 удалено
  1. 4 0
      pkg/cloud/awsprovider.go
  2. 6 0
      pkg/env/costmodelenv.go

+ 4 - 0
pkg/cloud/awsprovider.go

@@ -766,6 +766,10 @@ func (aws *AWS) getRegionPricing(nodeList []*v1.Node) (*http.Response, string, e
 
 	pricingURL += "index.json"
 
+	if env.GetAWSPricingURL() != "" { // Allow override of pricing URL
+		pricingURL = env.GetAWSPricingURL()
+	}
+
 	log.Infof("starting download of \"%s\", which is quite large ...", pricingURL)
 	resp, err := http.Get(pricingURL)
 	if err != nil {

+ 6 - 0
pkg/env/costmodelenv.go

@@ -15,6 +15,7 @@ const (
 	AWSAccessKeyIDEnvVar     = "AWS_ACCESS_KEY_ID"
 	AWSAccessKeySecretEnvVar = "AWS_SECRET_ACCESS_KEY"
 	AWSClusterIDEnvVar       = "AWS_CLUSTER_ID"
+	AWSPricingURL            = "AWS_PRICING_URL"
 
 	AlibabaAccessKeyIDEnvVar     = "ALIBABA_ACCESS_KEY_ID"
 	AlibabaAccessKeySecretEnvVar = "ALIBABA_SECRET_ACCESS_KEY"
@@ -209,6 +210,11 @@ func GetAWSClusterID() string {
 	return Get(AWSClusterIDEnvVar, "")
 }
 
+// GetAWSPricingURL returns an optional alternative URL to fetch AWS pricing data from; for use in airgapped environments
+func GetAWSPricingURL() string {
+	return Get(AWSPricingURL, "")
+}
+
 // GetAlibabaAccessKeyID returns the environment variable value for AlibabaAccessKeyIDEnvVar which represents
 // the Alibaba access key for authentication
 func GetAlibabaAccessKeyID() string {