-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Change: use build-tool for generating dbaas consumers in builds (#115)
* refactor: use build-tool for generating dbaas consumers in builds * chore: remove unused classes * chore: add debug message for templating result * chore: disable debug for ingress identification * chore: disable debug for ingress identification * chore: disable debug for dbaas identification * chore: add dbaas command to identify * chore: add dbaas support to exec-monitor since existing code that transformed types changed * test: fix dbaas tests with new changes * chore: remove redundant types * chore: remove legacy dbaas charts * refactor: support mongo-mongodb type conversion and add tests for mongo to mongodb-dbaas conversion * refactor: remove dbaas images from images to pull
- Loading branch information
1 parent
bd29992
commit 6d3534a
Showing
34 changed files
with
864 additions
and
609 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
package cmd | ||
|
||
import ( | ||
"fmt" | ||
|
||
"github.com/spf13/cobra" | ||
generator "github.com/uselagoon/build-deploy-tool/internal/generator" | ||
) | ||
|
||
// this is an intermediate helper command while transitioning from bash to go | ||
// eventually this won't be required | ||
var dbaasIdentify = &cobra.Command{ | ||
Use: "dbaas", | ||
Aliases: []string{"db", "d"}, | ||
Short: "Identify if any dbaas consumers are created", | ||
RunE: func(cmd *cobra.Command, args []string) error { | ||
generator, err := generator.GenerateInput(*rootCmd, false) | ||
if err != nil { | ||
return err | ||
} | ||
dbaasConsumers, err := IdentifyDBaaSConsumers(generator) | ||
if err != nil { | ||
return err | ||
} | ||
for _, dbc := range dbaasConsumers { | ||
fmt.Println(dbc) | ||
} | ||
return nil | ||
}, | ||
} | ||
|
||
func IdentifyDBaaSConsumers(g generator.GeneratorInput) ([]string, error) { | ||
lagoonBuild, err := generator.NewGenerator( | ||
g, | ||
) | ||
if err != nil { | ||
return nil, err | ||
} | ||
ret := []string{} | ||
for _, svc := range lagoonBuild.BuildValues.Services { | ||
if svc.IsDBaaS { | ||
ret = append(ret, fmt.Sprintf("%s:%s", svc.Name, svc.Type)) | ||
} | ||
} | ||
return ret, nil | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,162 @@ | ||
package cmd | ||
|
||
import ( | ||
"os" | ||
"reflect" | ||
"testing" | ||
|
||
"github.com/uselagoon/build-deploy-tool/internal/dbaasclient" | ||
"github.com/uselagoon/build-deploy-tool/internal/helpers" | ||
"github.com/uselagoon/build-deploy-tool/internal/lagoon" | ||
"github.com/uselagoon/build-deploy-tool/internal/testdata" | ||
) | ||
|
||
// these tests uses the same files as the dbaas templates | ||
func TestIdentifyDBaaSConsumers(t *testing.T) { | ||
type args struct { | ||
name string | ||
alertContact string | ||
statusPageID string | ||
projectName string | ||
environmentName string | ||
branch string | ||
prNumber string | ||
prHeadBranch string | ||
prBaseBranch string | ||
environmentType string | ||
buildType string | ||
activeEnvironment string | ||
standbyEnvironment string | ||
cacheNoCache string | ||
serviceID string | ||
secretPrefix string | ||
projectVars string | ||
envVars string | ||
lagoonVersion string | ||
lagoonYAML string | ||
valuesFilePath string | ||
templatePath string | ||
} | ||
tests := []struct { | ||
name string | ||
args testdata.TestData | ||
vars []helpers.EnvironmentVariable | ||
templatePath string | ||
want []string | ||
wantErr bool | ||
}{ | ||
{ | ||
name: "test1 - mariadb to mariadb-dbaas only", | ||
args: testdata.GetSeedData( | ||
testdata.TestData{ | ||
ProjectName: "example-project", | ||
EnvironmentName: "main", | ||
Branch: "main", | ||
LagoonYAML: "../internal/testdata/complex/lagoon.yml", | ||
}, true), | ||
templatePath: "testdata/output", | ||
want: []string{ | ||
"mariadb:mariadb-dbaas", | ||
}, | ||
}, | ||
{ | ||
name: "test2 - mariadb to mariadb-shared which converts to mariadb-dbaas", | ||
args: testdata.GetSeedData( | ||
testdata.TestData{ | ||
ProjectName: "example-project", | ||
EnvironmentName: "main", | ||
Branch: "main", | ||
LagoonYAML: "../internal/testdata/complex/lagoon.yml", | ||
ProjectVariables: []lagoon.EnvironmentVariable{ | ||
{Name: "LAGOON_SERVICE_TYPES", Value: "mariadb:mariadb-shared", Scope: "build"}, | ||
}, | ||
}, true), | ||
templatePath: "testdata/output", | ||
want: []string{ | ||
"mariadb:mariadb-dbaas", | ||
}, | ||
}, | ||
{ | ||
name: "test3 - override provider to non-existent should result in failing dbaas check and a single pod no dbaas found", | ||
args: testdata.GetSeedData( | ||
testdata.TestData{ | ||
ProjectName: "example-project", | ||
EnvironmentName: "main", | ||
Branch: "main", | ||
LagoonYAML: "../internal/testdata/complex/lagoon.yml", | ||
ProjectVariables: []lagoon.EnvironmentVariable{ | ||
{Name: "LAGOON_DBAAS_ENVIRONMENT_TYPES", Value: "mariadb:development2", Scope: "build"}, | ||
}, | ||
}, true), | ||
templatePath: "testdata/output", | ||
want: []string{}, | ||
}, | ||
{ | ||
name: "test4 - mariadb-single to mariadb-dbaas (using mariadb-shared to mariadb-dbaas conversion)", | ||
args: testdata.GetSeedData( | ||
testdata.TestData{ | ||
ProjectName: "example-project", | ||
EnvironmentName: "main", | ||
Branch: "main", | ||
LagoonYAML: "../internal/testdata/complex/lagoon.yml", | ||
ProjectVariables: []lagoon.EnvironmentVariable{ | ||
{Name: "LAGOON_SERVICE_TYPES", Value: "mariadb:mariadb-shared", Scope: "build"}, | ||
}, | ||
}, true), | ||
templatePath: "testdata/output", | ||
want: []string{ | ||
"mariadb:mariadb-dbaas", | ||
}, | ||
}, | ||
{ | ||
name: "test5 - multiple mariadb", | ||
args: testdata.GetSeedData( | ||
testdata.TestData{ | ||
ProjectName: "example-project", | ||
EnvironmentName: "main", | ||
Branch: "main", | ||
LagoonYAML: "../internal/testdata/complex/lagoon.multidb.yml", | ||
}, true), | ||
templatePath: "testdata/output", | ||
want: []string{ | ||
"mariadb:mariadb-dbaas", | ||
"mariadb2:mariadb-dbaas", | ||
}, | ||
}, | ||
} | ||
for _, tt := range tests { | ||
t.Run(tt.name, func(t *testing.T) { | ||
savedTemplates := tt.templatePath | ||
generator, err := testdata.SetupEnvironment(*rootCmd, savedTemplates, tt.args) | ||
if err != nil { | ||
t.Errorf("%v", err) | ||
} | ||
for _, envVar := range tt.vars { | ||
err = os.Setenv(envVar.Name, envVar.Value) | ||
if err != nil { | ||
t.Errorf("%v", err) | ||
} | ||
} | ||
|
||
// setup the fake dbaas server | ||
ts := dbaasclient.TestDBaaSHTTPServer() | ||
defer ts.Close() | ||
err = os.Setenv("DBAAS_OPERATOR_HTTP", ts.URL) | ||
if err != nil { | ||
t.Errorf("%v", err) | ||
} | ||
|
||
got, err := IdentifyDBaaSConsumers(generator) | ||
if (err != nil) != tt.wantErr { | ||
t.Errorf("IdentifyDBaaSConsumers() error = %v, wantErr %v", err, tt.wantErr) | ||
return | ||
} | ||
if !reflect.DeepEqual(got, tt.want) { | ||
t.Errorf("IdentifyDBaaSConsumers() = %v, want %v", got, tt.want) | ||
} | ||
t.Cleanup(func() { | ||
helpers.UnsetEnvVars(tt.vars) | ||
}) | ||
}) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.