Răsfoiți Sursa

update provisioner config to avoid collision

Alexander Belanger 4 ani în urmă
părinte
comite
e958d41599
1 a modificat fișierele cu 16 adăugiri și 1 ștergeri
  1. 16 1
      provisioner/server/config/config.go

+ 16 - 1
provisioner/server/config/config.go

@@ -13,6 +13,7 @@ import (
 	"github.com/porter-dev/porter/internal/adapter"
 	"github.com/porter-dev/porter/internal/kubernetes"
 	klocal "github.com/porter-dev/porter/internal/kubernetes/local"
+	"github.com/porter-dev/porter/internal/oauth"
 
 	"github.com/porter-dev/porter/internal/logger"
 	"github.com/porter-dev/porter/internal/repository"
@@ -72,7 +73,7 @@ type Config struct {
 // ProvisionerConf is the env var configuration for the provisioner server
 type ProvisionerConf struct {
 	Debug bool `env:"DEBUG,default=false"`
-	Port  int  `env:"PROVISIONER_PORT,default=8082"`
+	Port  int  `env:"PROV_PORT,default=8082"`
 
 	TimeoutRead  time.Duration `env:"SERVER_TIMEOUT_READ,default=5s"`
 	TimeoutWrite time.Duration `env:"SERVER_TIMEOUT_WRITE,default=10s"`
@@ -90,6 +91,11 @@ type ProvisionerConf struct {
 	S3BucketName     string `env:"S3_BUCKET_NAME"`
 	S3EncryptionKey  string `env:"ENCRYPTION_KEY,default=__random_strong_encryption_key__"`
 
+	// Configuration for the digitalocean client
+	DOClientID        string `env:"DO_CLIENT_ID"`
+	DOClientSecret    string `env:"DO_CLIENT_SECRET"`
+	DOClientServerURL string `env:"DO_CLIENT_SERVER_URL"`
+
 	// ProvisionerMethod defines the method to use for provisioner: options are "local" or "kubernetes"
 	ProvisionerMethod          string `env:"PROVISIONER_METHOD,default=local"`
 	ProvisionerBackendURL      string `env:"PROV_BACKEND_URL,default=http://localhost:8082"`
@@ -206,6 +212,15 @@ func GetConfig(envConf *EnvConf) (*Config, error) {
 		})
 	}
 
+	if envConf.ProvisionerConf.DOClientID != "" && envConf.ProvisionerConf.DOClientSecret != "" && envConf.ProvisionerConf.DOClientServerURL != "" {
+		res.DOConf = oauth.NewDigitalOceanClient(&oauth.Config{
+			ClientID:     envConf.ProvisionerConf.DOClientID,
+			ClientSecret: envConf.ProvisionerConf.DOClientSecret,
+			Scopes:       []string{"read", "write"},
+			BaseURL:      envConf.ProvisionerConf.DOClientServerURL,
+		})
+	}
+
 	return res, nil
 }