Skip to content

Commit a417b1d

Browse files
authored
Merge pull request #432 from uselagoon/fix-mongo-single
fix: missing support for `mongo` service types
2 parents 1a0fbee + 0d2de4b commit a417b1d

File tree

2 files changed

+291
-1
lines changed

2 files changed

+291
-1
lines changed

internal/generator/services.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,11 @@ import (
2020
var oldServiceMap = map[string]string{
2121
"mariadb-shared": "mariadb-dbaas",
2222
"postgres-shared": "postgres-dbaas",
23+
"mongo": "mongodb",
2324
"mongo-shared": "mongodb-dbaas",
25+
"mongo-dbaas": "mongodb-dbaas",
26+
"mongo-single": "mongodb-single",
2427
"python-ckandatapusher": "python",
25-
"mongo": "mongodb",
2628
}
2729

2830
// these are lagoon types that support autogenerated routes

internal/generator/services_test.go

Lines changed: 288 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1363,6 +1363,294 @@ func Test_composeToServiceValues(t *testing.T) {
13631363
want: nil,
13641364
wantErr: true,
13651365
},
1366+
{
1367+
name: "test26 - mariadb-shared to mariadb-dbaas",
1368+
args: args{
1369+
buildValues: &BuildValues{
1370+
Namespace: "example-project-main",
1371+
Project: "example-project",
1372+
ImageRegistry: "harbor.example",
1373+
Environment: "main",
1374+
Branch: "main",
1375+
BuildType: "branch",
1376+
EnvironmentType: "development",
1377+
ServiceTypeOverrides: &lagoon.EnvironmentVariable{},
1378+
LagoonYAML: lagoon.YAML{
1379+
Routes: lagoon.Routes{
1380+
Autogenerate: lagoon.Autogenerate{
1381+
Enabled: helpers.BoolPtr(true),
1382+
AllowPullRequests: helpers.BoolPtr(false),
1383+
},
1384+
},
1385+
Environments: lagoon.Environments{
1386+
"main": lagoon.Environment{
1387+
AutogenerateRoutes: helpers.BoolPtr(true),
1388+
},
1389+
},
1390+
},
1391+
},
1392+
composeService: "mariadb",
1393+
composeServiceValues: composetypes.ServiceConfig{
1394+
Labels: composetypes.Labels{
1395+
"lagoon.type": "mariadb-shared",
1396+
},
1397+
Image: "uselagoon/fake-mariadb:latest",
1398+
},
1399+
},
1400+
want: &ServiceValues{
1401+
Name: "mariadb",
1402+
OverrideName: "mariadb",
1403+
Type: "mariadb-dbaas",
1404+
AutogeneratedRoutesEnabled: false,
1405+
AutogeneratedRoutesTLSAcme: false,
1406+
DBaaSEnvironment: "development",
1407+
InPodCronjobs: []lagoon.Cronjob{},
1408+
NativeCronjobs: []lagoon.Cronjob{},
1409+
IsDBaaS: true,
1410+
BackupsEnabled: true,
1411+
},
1412+
},
1413+
{
1414+
name: "test27 - postgres-shared to postgres-dbaas",
1415+
args: args{
1416+
buildValues: &BuildValues{
1417+
Namespace: "example-project-main",
1418+
Project: "example-project",
1419+
ImageRegistry: "harbor.example",
1420+
Environment: "main",
1421+
Branch: "main",
1422+
BuildType: "branch",
1423+
EnvironmentType: "development",
1424+
ServiceTypeOverrides: &lagoon.EnvironmentVariable{},
1425+
LagoonYAML: lagoon.YAML{
1426+
Routes: lagoon.Routes{
1427+
Autogenerate: lagoon.Autogenerate{
1428+
Enabled: helpers.BoolPtr(true),
1429+
AllowPullRequests: helpers.BoolPtr(false),
1430+
},
1431+
},
1432+
Environments: lagoon.Environments{
1433+
"main": lagoon.Environment{
1434+
AutogenerateRoutes: helpers.BoolPtr(true),
1435+
},
1436+
},
1437+
},
1438+
},
1439+
composeService: "postgres",
1440+
composeServiceValues: composetypes.ServiceConfig{
1441+
Labels: composetypes.Labels{
1442+
"lagoon.type": "postgres-shared",
1443+
},
1444+
Image: "uselagoon/fake-postgres:latest",
1445+
},
1446+
},
1447+
want: &ServiceValues{
1448+
Name: "postgres",
1449+
OverrideName: "postgres",
1450+
Type: "postgres-dbaas",
1451+
AutogeneratedRoutesEnabled: false,
1452+
AutogeneratedRoutesTLSAcme: false,
1453+
DBaaSEnvironment: "development",
1454+
InPodCronjobs: []lagoon.Cronjob{},
1455+
NativeCronjobs: []lagoon.Cronjob{},
1456+
IsDBaaS: true,
1457+
BackupsEnabled: true,
1458+
},
1459+
},
1460+
{
1461+
name: "test28 - mongo to mongodb-dbaas",
1462+
args: args{
1463+
buildValues: &BuildValues{
1464+
Namespace: "example-project-main",
1465+
Project: "example-project",
1466+
ImageRegistry: "harbor.example",
1467+
Environment: "main",
1468+
Branch: "main",
1469+
BuildType: "branch",
1470+
EnvironmentType: "development",
1471+
ServiceTypeOverrides: &lagoon.EnvironmentVariable{},
1472+
LagoonYAML: lagoon.YAML{
1473+
Routes: lagoon.Routes{
1474+
Autogenerate: lagoon.Autogenerate{
1475+
Enabled: helpers.BoolPtr(true),
1476+
AllowPullRequests: helpers.BoolPtr(false),
1477+
},
1478+
},
1479+
Environments: lagoon.Environments{
1480+
"main": lagoon.Environment{
1481+
AutogenerateRoutes: helpers.BoolPtr(true),
1482+
},
1483+
},
1484+
},
1485+
},
1486+
composeService: "mongo",
1487+
composeServiceValues: composetypes.ServiceConfig{
1488+
Labels: composetypes.Labels{
1489+
"lagoon.type": "mongo",
1490+
},
1491+
Image: "uselagoon/fake-mongo:latest",
1492+
},
1493+
},
1494+
want: &ServiceValues{
1495+
Name: "mongo",
1496+
OverrideName: "mongo",
1497+
Type: "mongodb-dbaas",
1498+
AutogeneratedRoutesEnabled: false,
1499+
AutogeneratedRoutesTLSAcme: false,
1500+
DBaaSEnvironment: "development",
1501+
InPodCronjobs: []lagoon.Cronjob{},
1502+
NativeCronjobs: []lagoon.Cronjob{},
1503+
IsDBaaS: true,
1504+
BackupsEnabled: true,
1505+
},
1506+
},
1507+
{
1508+
name: "test29 - mongo-single to mongodb-single",
1509+
args: args{
1510+
buildValues: &BuildValues{
1511+
Namespace: "example-project-main",
1512+
Project: "example-project",
1513+
ImageRegistry: "harbor.example",
1514+
Environment: "main",
1515+
Branch: "main",
1516+
BuildType: "branch",
1517+
EnvironmentType: "development",
1518+
ServiceTypeOverrides: &lagoon.EnvironmentVariable{},
1519+
LagoonYAML: lagoon.YAML{
1520+
Routes: lagoon.Routes{
1521+
Autogenerate: lagoon.Autogenerate{
1522+
Enabled: helpers.BoolPtr(true),
1523+
AllowPullRequests: helpers.BoolPtr(false),
1524+
},
1525+
},
1526+
Environments: lagoon.Environments{
1527+
"main": lagoon.Environment{
1528+
AutogenerateRoutes: helpers.BoolPtr(true),
1529+
},
1530+
},
1531+
},
1532+
},
1533+
composeService: "mongo",
1534+
composeServiceValues: composetypes.ServiceConfig{
1535+
Labels: composetypes.Labels{
1536+
"lagoon.type": "mongo-single",
1537+
},
1538+
Image: "uselagoon/fake-mongo:latest",
1539+
},
1540+
},
1541+
want: &ServiceValues{
1542+
Name: "mongo",
1543+
OverrideName: "mongo",
1544+
Type: "mongodb-single",
1545+
AutogeneratedRoutesEnabled: false,
1546+
AutogeneratedRoutesTLSAcme: false,
1547+
PersistentVolumePath: "/data/db",
1548+
PersistentVolumeName: "mongo",
1549+
PersistentVolumeSize: "5Gi",
1550+
DBaaSEnvironment: "development",
1551+
InPodCronjobs: []lagoon.Cronjob{},
1552+
NativeCronjobs: []lagoon.Cronjob{},
1553+
ImageBuild: &ImageBuild{
1554+
PullImage: "uselagoon/fake-mongo:latest",
1555+
BuildImage: "harbor.example/example-project/main/mongo:latest",
1556+
},
1557+
BackupsEnabled: true,
1558+
},
1559+
},
1560+
{
1561+
name: "test30 - mongo-dbaas to mongodb-dbaas",
1562+
args: args{
1563+
buildValues: &BuildValues{
1564+
Namespace: "example-project-main",
1565+
Project: "example-project",
1566+
ImageRegistry: "harbor.example",
1567+
Environment: "main",
1568+
Branch: "main",
1569+
BuildType: "branch",
1570+
EnvironmentType: "development",
1571+
ServiceTypeOverrides: &lagoon.EnvironmentVariable{},
1572+
LagoonYAML: lagoon.YAML{
1573+
Routes: lagoon.Routes{
1574+
Autogenerate: lagoon.Autogenerate{
1575+
Enabled: helpers.BoolPtr(true),
1576+
AllowPullRequests: helpers.BoolPtr(false),
1577+
},
1578+
},
1579+
Environments: lagoon.Environments{
1580+
"main": lagoon.Environment{
1581+
AutogenerateRoutes: helpers.BoolPtr(true),
1582+
},
1583+
},
1584+
},
1585+
},
1586+
composeService: "mongo",
1587+
composeServiceValues: composetypes.ServiceConfig{
1588+
Labels: composetypes.Labels{
1589+
"lagoon.type": "mongo-dbaas",
1590+
},
1591+
Image: "uselagoon/fake-mongo:latest",
1592+
},
1593+
},
1594+
want: &ServiceValues{
1595+
Name: "mongo",
1596+
OverrideName: "mongo",
1597+
Type: "mongodb-dbaas",
1598+
AutogeneratedRoutesEnabled: false,
1599+
AutogeneratedRoutesTLSAcme: false,
1600+
DBaaSEnvironment: "development",
1601+
InPodCronjobs: []lagoon.Cronjob{},
1602+
NativeCronjobs: []lagoon.Cronjob{},
1603+
IsDBaaS: true,
1604+
BackupsEnabled: true,
1605+
},
1606+
},
1607+
{
1608+
name: "test31 - mongo-shared to mongodb-dbaas",
1609+
args: args{
1610+
buildValues: &BuildValues{
1611+
Namespace: "example-project-main",
1612+
Project: "example-project",
1613+
ImageRegistry: "harbor.example",
1614+
Environment: "main",
1615+
Branch: "main",
1616+
BuildType: "branch",
1617+
EnvironmentType: "development",
1618+
ServiceTypeOverrides: &lagoon.EnvironmentVariable{},
1619+
LagoonYAML: lagoon.YAML{
1620+
Routes: lagoon.Routes{
1621+
Autogenerate: lagoon.Autogenerate{
1622+
Enabled: helpers.BoolPtr(true),
1623+
AllowPullRequests: helpers.BoolPtr(false),
1624+
},
1625+
},
1626+
Environments: lagoon.Environments{
1627+
"main": lagoon.Environment{
1628+
AutogenerateRoutes: helpers.BoolPtr(true),
1629+
},
1630+
},
1631+
},
1632+
},
1633+
composeService: "mongo",
1634+
composeServiceValues: composetypes.ServiceConfig{
1635+
Labels: composetypes.Labels{
1636+
"lagoon.type": "mongo-shared",
1637+
},
1638+
Image: "uselagoon/fake-mongo:latest",
1639+
},
1640+
},
1641+
want: &ServiceValues{
1642+
Name: "mongo",
1643+
OverrideName: "mongo",
1644+
Type: "mongodb-dbaas",
1645+
AutogeneratedRoutesEnabled: false,
1646+
AutogeneratedRoutesTLSAcme: false,
1647+
DBaaSEnvironment: "development",
1648+
InPodCronjobs: []lagoon.Cronjob{},
1649+
NativeCronjobs: []lagoon.Cronjob{},
1650+
IsDBaaS: true,
1651+
BackupsEnabled: true,
1652+
},
1653+
},
13661654
}
13671655
for _, tt := range tests {
13681656
t.Run(tt.name, func(t *testing.T) {

0 commit comments

Comments
 (0)