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

Create a NewController without being attached to the providerConfig

When not using Kubernetes, you won't have a cloud provider, because
that's provided by the node detecting the platform.
GetCloudBillingWatchers is independent of that since it's used by
/cloudCost

Signed-off-by: Matt Ray <github@mattray.dev>
Matt Ray 2 лет назад
Родитель
Сommit
5a09fda65a
1 измененных файлов с 8 добавлено и 2 удалено
  1. 8 2
      pkg/cloud/config/controller.go

+ 8 - 2
pkg/cloud/config/controller.go

@@ -8,6 +8,7 @@ import (
 	"github.com/opencost/opencost/pkg/cloud"
 	"github.com/opencost/opencost/pkg/cloud/models"
 	"github.com/opencost/opencost/pkg/cloud/provider"
+	"github.com/opencost/opencost/pkg/env"
 	"github.com/opencost/opencost/pkg/util/timeutil"
 )
 
@@ -47,8 +48,13 @@ type Controller struct {
 
 // NewController initializes an Config Controller
 func NewController(cp models.Provider) *Controller {
-	providerConfig := provider.ExtractConfigFromProviders(cp)
-	watchers := GetCloudBillingWatchers(providerConfig)
+	var watchers map[ConfigSource]cloud.KeyedConfigWatcher
+	if env.IsKubernetesEnabled() {
+		providerConfig := provider.ExtractConfigFromProviders(cp)
+		watchers = GetCloudBillingWatchers(providerConfig)
+	} else {
+		watchers = GetCloudBillingWatchers(nil)
+	}
 	ic := &Controller{
 		statuses: make(map[configID]*Status),
 		watchers: watchers,