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

Merge pull request #185 from porter-dev/beta.3.provisioning-integration

Beta.3.provisioning integration
abelanger5 5 лет назад
Родитель
Сommit
a4b63b992c

+ 14 - 11
internal/kubernetes/agent.go

@@ -7,7 +7,6 @@ import (
 	"io"
 	"strings"
 
-	"github.com/porter-dev/porter/internal/config"
 	"github.com/porter-dev/porter/internal/kubernetes/provisioner"
 	"github.com/porter-dev/porter/internal/kubernetes/provisioner/aws"
 	"github.com/porter-dev/porter/internal/kubernetes/provisioner/aws/ecr"
@@ -26,6 +25,8 @@ import (
 	"k8s.io/client-go/informers"
 	"k8s.io/client-go/kubernetes"
 	"k8s.io/client-go/tools/cache"
+
+	"github.com/porter-dev/porter/internal/config"
 )
 
 // Agent is a Kubernetes agent for performing operations that interact with the
@@ -240,6 +241,8 @@ func (a *Agent) ProvisionECR(
 	ecrName string,
 	awsInfra *models.AWSInfra,
 	operation provisioner.ProvisionerOperation,
+	pgConf *provisioner.PostgresConf,
+	redisConf *config.RedisConf,
 ) (*batchv1.Job, error) {
 	id := awsInfra.GetID()
 	prov := &provisioner.Conf{
@@ -247,6 +250,8 @@ func (a *Agent) ProvisionECR(
 		Name:      fmt.Sprintf("prov-%s-%s", id, string(operation)),
 		Kind:      provisioner.ECR,
 		Operation: operation,
+		Redis:     redisConf,
+		Postgres:  pgConf,
 		AWS: &aws.Conf{
 			AWSRegion:          awsConf.AWSRegion,
 			AWSAccessKeyID:     string(awsConf.AWSAccessKeyID),
@@ -267,6 +272,8 @@ func (a *Agent) ProvisionEKS(
 	eksName string,
 	awsInfra *models.AWSInfra,
 	operation provisioner.ProvisionerOperation,
+	pgConf *provisioner.PostgresConf,
+	redisConf *config.RedisConf,
 ) (*batchv1.Job, error) {
 	id := awsInfra.GetID()
 	prov := &provisioner.Conf{
@@ -274,6 +281,8 @@ func (a *Agent) ProvisionEKS(
 		Name:      fmt.Sprintf("prov-%s-%s", id, string(operation)),
 		Kind:      provisioner.EKS,
 		Operation: provisioner.Apply,
+		Redis:     redisConf,
+		Postgres:  pgConf,
 		AWS: &aws.Conf{
 			AWSRegion:          awsConf.AWSRegion,
 			AWSAccessKeyID:     string(awsConf.AWSAccessKeyID),
@@ -291,12 +300,16 @@ func (a *Agent) ProvisionEKS(
 func (a *Agent) ProvisionTest(
 	projectID uint,
 	operation provisioner.ProvisionerOperation,
+	pgConf *provisioner.PostgresConf,
+	redisConf *config.RedisConf,
 ) (*batchv1.Job, error) {
 	prov := &provisioner.Conf{
 		ID:        fmt.Sprintf("%s-%d", "testing", projectID),
 		Name:      fmt.Sprintf("prov-%s-%d-%s", "testing", projectID, string(operation)),
 		Operation: provisioner.Apply,
 		Kind:      provisioner.Test,
+		Redis:     redisConf,
+		Postgres:  pgConf,
 	}
 
 	return a.provision(prov)
@@ -307,16 +320,6 @@ func (a *Agent) provision(
 ) (*batchv1.Job, error) {
 	prov.Namespace = "default"
 
-	prov.Redis = &config.RedisConf{
-		Host: "redis-master.default.svc.cluster.local",
-		Port: "6379",
-	}
-
-	prov.Postgres = &provisioner.PostgresConf{
-		Host: "postgres-postgresql.default.svc.cluster.local",
-		Port: "5432",
-	}
-
 	job, err := prov.GetProvisionerJobTemplate()
 
 	if err != nil {

+ 4 - 2
internal/kubernetes/provisioner/provisioner.go

@@ -1,6 +1,8 @@
 package provisioner
 
 import (
+	"fmt"
+
 	batchv1 "k8s.io/api/batch/v1"
 	v1 "k8s.io/api/core/v1"
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -41,7 +43,7 @@ type Conf struct {
 // PostgresConf is the postgres config for the provisioner container
 type PostgresConf struct {
 	Host string
-	Port string
+	Port int
 }
 
 type ProvisionerOperation string
@@ -202,7 +204,7 @@ func (conf *Conf) addPostgresEnv(env []v1.EnvVar) []v1.EnvVar {
 
 	env = append(env, v1.EnvVar{
 		Name:  "PG_PORT",
-		Value: conf.Postgres.Port,
+		Value: fmt.Sprintf("%d", conf.Postgres.Port),
 	})
 
 	env = append(env, v1.EnvVar{

+ 4 - 0
server/api/api.go

@@ -37,6 +37,7 @@ type AppConfig struct {
 	Repository *repository.Repository
 	ServerConf config.ServerConf
 	RedisConf  *config.RedisConf
+	DBConf     config.DBConf
 
 	// TestAgents if API is in testing mode
 	TestAgents *TestAgents
@@ -63,6 +64,9 @@ type App struct {
 	// redis client for redis connection
 	RedisConf *config.RedisConf
 
+	// config for db
+	DBConf config.DBConf
+
 	// oauth-specific clients
 	GithubConf *oauth2.Config
 

+ 29 - 1
server/api/provision_handler.go

@@ -33,7 +33,15 @@ func (app *App) HandleProvisionTest(w http.ResponseWriter, r *http.Request) {
 		return
 	}
 
-	_, err = agent.ProvisionTest(uint(projID), provisioner.Apply)
+	_, err = agent.ProvisionTest(
+		uint(projID),
+		provisioner.Apply,
+		&provisioner.PostgresConf{
+			Host: app.DBConf.Host,
+			Port: app.DBConf.Port,
+		},
+		app.RedisConf,
+	)
 
 	if err != nil {
 		app.handleErrorInternal(err, w)
@@ -111,6 +119,11 @@ func (app *App) HandleProvisionAWSECRInfra(w http.ResponseWriter, r *http.Reques
 		form.ECRName,
 		infra,
 		provisioner.Apply,
+		&provisioner.PostgresConf{
+			Host: app.DBConf.Host,
+			Port: app.DBConf.Port,
+		},
+		app.RedisConf,
 	)
 
 	if err != nil {
@@ -199,6 +212,11 @@ func (app *App) HandleDestroyAWSECRInfra(w http.ResponseWriter, r *http.Request)
 		form.ECRName,
 		infra,
 		provisioner.Destroy,
+		&provisioner.PostgresConf{
+			Host: app.DBConf.Host,
+			Port: app.DBConf.Port,
+		},
+		app.RedisConf,
 	)
 
 	if err != nil {
@@ -279,6 +297,11 @@ func (app *App) HandleProvisionAWSEKSInfra(w http.ResponseWriter, r *http.Reques
 		form.EKSName,
 		infra,
 		provisioner.Apply,
+		&provisioner.PostgresConf{
+			Host: app.DBConf.Host,
+			Port: app.DBConf.Port,
+		},
+		app.RedisConf,
 	)
 
 	if err != nil {
@@ -367,6 +390,11 @@ func (app *App) HandleDestroyAWSEKSInfra(w http.ResponseWriter, r *http.Request)
 		form.EKSName,
 		infra,
 		provisioner.Destroy,
+		&provisioner.PostgresConf{
+			Host: app.DBConf.Host,
+			Port: app.DBConf.Port,
+		},
+		app.RedisConf,
 	)
 
 	if err != nil {