@@ -27,6 +27,7 @@ import (
27
27
"strings"
28
28
"testing"
29
29
30
+ "github.com/mongodb/mongodb-atlas-cli/internal/kubernetes/operator/features"
30
31
"github.com/mongodb/mongodb-atlas-cli/internal/kubernetes/operator/pointers"
31
32
"github.com/mongodb/mongodb-atlas-cli/internal/kubernetes/operator/resources"
32
33
"github.com/mongodb/mongodb-atlas-cli/internal/search"
@@ -48,6 +49,10 @@ import (
48
49
49
50
const targetNamespace = "importer-namespace"
50
51
52
+ var expectedLabels = map [string ]string {
53
+ features .ResourceVersion : features .LatestOperatorVersion ,
54
+ }
55
+
51
56
func getK8SEntities (data []byte ) ([]runtime.Object , error ) {
52
57
b := bufio .NewReader (bytes .NewReader (data ))
53
58
r := k8syaml .NewYAMLReader (b )
@@ -92,7 +97,7 @@ func InitialSetupWithTeam(t *testing.T) KubernetesConfigGenerateProjectSuite {
92
97
s .generator = newAtlasE2ETestGenerator (s .t )
93
98
s .generator .generateTeam ("Kubernetes" )
94
99
s .generator .generateEmptyProject (fmt .Sprintf ("Kubernetes-%s" , s .generator .projectName ))
95
- s .expectedProject = referenceProject (s .generator .projectName , targetNamespace )
100
+ s .expectedProject = referenceProject (s .generator .projectName , targetNamespace , expectedLabels )
96
101
97
102
cliPath , err := e2e .AtlasCLIBin ()
98
103
require .NoError (s .t , err )
@@ -112,7 +117,7 @@ func InitialSetup(t *testing.T) KubernetesConfigGenerateProjectSuite {
112
117
}
113
118
s .generator = newAtlasE2ETestGenerator (s .t )
114
119
s .generator .generateEmptyProject (fmt .Sprintf ("Kubernetes-%s" , s .generator .projectName ))
115
- s .expectedProject = referenceProject (s .generator .projectName , targetNamespace )
120
+ s .expectedProject = referenceProject (s .generator .projectName , targetNamespace , expectedLabels )
116
121
117
122
cliPath , err := e2e .AtlasCLIBin ()
118
123
require .NoError (s .t , err )
@@ -734,7 +739,7 @@ func TestProjectAndTeams(t *testing.T) {
734
739
t .Run ("Add team to project" , func (t * testing.T ) {
735
740
expectedTeam := referenceTeam (generator .teamName , targetNamespace , []atlasV1.TeamUser {
736
741
atlasV1 .TeamUser (generator .teamUser ),
737
- }, generator .projectName )
742
+ }, generator .projectName , expectedLabels )
738
743
739
744
expectedProject .Spec .Teams = []atlasV1.Team {
740
745
{
@@ -795,7 +800,7 @@ func TestProjectAndTeams(t *testing.T) {
795
800
})
796
801
}
797
802
798
- func referenceTeam (name , namespace string , users []atlasV1.TeamUser , projectName string ) * atlasV1.AtlasTeam {
803
+ func referenceTeam (name , namespace string , users []atlasV1.TeamUser , projectName string , labels map [ string ] string ) * atlasV1.AtlasTeam {
799
804
dictionary := resources .AtlasNameToKubernetesName ()
800
805
801
806
return & atlasV1.AtlasTeam {
@@ -806,6 +811,7 @@ func referenceTeam(name, namespace string, users []atlasV1.TeamUser, projectName
806
811
ObjectMeta : v1.ObjectMeta {
807
812
Name : resources .NormalizeAtlasName (fmt .Sprintf ("%s-team-%s" , projectName , name ), dictionary ),
808
813
Namespace : namespace ,
814
+ Labels : labels ,
809
815
},
810
816
Spec : atlasV1.TeamSpec {
811
817
Name : name ,
@@ -839,7 +845,7 @@ func checkProject(t *testing.T, output []runtime.Object, expected *atlasV1.Atlas
839
845
})
840
846
}
841
847
842
- func referenceProject (name , namespace string ) * atlasV1.AtlasProject {
848
+ func referenceProject (name , namespace string , labels map [ string ] string ) * atlasV1.AtlasProject {
843
849
dictionary := resources .AtlasNameToKubernetesName ()
844
850
return & atlasV1.AtlasProject {
845
851
TypeMeta : v1.TypeMeta {
@@ -849,6 +855,7 @@ func referenceProject(name, namespace string) *atlasV1.AtlasProject {
849
855
ObjectMeta : v1.ObjectMeta {
850
856
Name : resources .NormalizeAtlasName (name , dictionary ),
851
857
Namespace : namespace ,
858
+ Labels : labels ,
852
859
},
853
860
Status : status.AtlasProjectStatus {
854
861
Common : status.Common {
@@ -887,7 +894,7 @@ func referenceProject(name, namespace string) *atlasV1.AtlasProject {
887
894
}
888
895
}
889
896
890
- func referenceAdvancedCluster (name , namespace , projectName string ) * atlasV1.AtlasDeployment {
897
+ func referenceAdvancedCluster (name , region , namespace , projectName string , labels map [ string ] string ) * atlasV1.AtlasDeployment {
891
898
dictionary := resources .AtlasNameToKubernetesName ()
892
899
return & atlasV1.AtlasDeployment {
893
900
TypeMeta : v1.TypeMeta {
@@ -897,6 +904,7 @@ func referenceAdvancedCluster(name, namespace, projectName string) *atlasV1.Atla
897
904
ObjectMeta : v1.ObjectMeta {
898
905
Name : resources .NormalizeAtlasName (name , dictionary ),
899
906
Namespace : namespace ,
907
+ Labels : labels ,
900
908
},
901
909
Spec : atlasV1.AtlasDeploymentSpec {
902
910
Project : common.ResourceRefNamespaced {
@@ -960,7 +968,7 @@ func referenceAdvancedCluster(name, namespace, projectName string) *atlasV1.Atla
960
968
},
961
969
Priority : pointers .MakePtr (7 ),
962
970
ProviderName : string (provider .ProviderAWS ),
963
- RegionName : "US_EAST_1" ,
971
+ RegionName : region ,
964
972
},
965
973
},
966
974
},
@@ -982,7 +990,7 @@ func referenceAdvancedCluster(name, namespace, projectName string) *atlasV1.Atla
982
990
}
983
991
}
984
992
985
- func referenceServerless (name , namespace , projectName string ) * atlasV1.AtlasDeployment {
993
+ func referenceServerless (name , region , namespace , projectName string , labels map [ string ] string ) * atlasV1.AtlasDeployment {
986
994
dictionary := resources .AtlasNameToKubernetesName ()
987
995
return & atlasV1.AtlasDeployment {
988
996
TypeMeta : v1.TypeMeta {
@@ -992,6 +1000,7 @@ func referenceServerless(name, namespace, projectName string) *atlasV1.AtlasDepl
992
1000
ObjectMeta : v1.ObjectMeta {
993
1001
Name : resources .NormalizeAtlasName (name , dictionary ),
994
1002
Namespace : namespace ,
1003
+ Labels : labels ,
995
1004
},
996
1005
Spec : atlasV1.AtlasDeploymentSpec {
997
1006
Project : common.ResourceRefNamespaced {
@@ -1003,7 +1012,7 @@ func referenceServerless(name, namespace, projectName string) *atlasV1.AtlasDepl
1003
1012
ProviderSettings : & atlasV1.ProviderSettingsSpec {
1004
1013
BackingProviderName : string (provider .ProviderAWS ),
1005
1014
ProviderName : provider .ProviderServerless ,
1006
- RegionName : "US_EAST_1" ,
1015
+ RegionName : region ,
1007
1016
},
1008
1017
},
1009
1018
},
@@ -1015,8 +1024,8 @@ func referenceServerless(name, namespace, projectName string) *atlasV1.AtlasDepl
1015
1024
}
1016
1025
}
1017
1026
1018
- func referenceSharedCluster (name , namespace , projectName string ) * atlasV1.AtlasDeployment {
1019
- cluster := referenceAdvancedCluster (name , namespace , projectName )
1027
+ func referenceSharedCluster (name , region , namespace , projectName string , labels map [ string ] string ) * atlasV1.AtlasDeployment {
1028
+ cluster := referenceAdvancedCluster (name , region , namespace , projectName , labels )
1020
1029
cluster .Spec .AdvancedDeploymentSpec .ReplicationSpecs [0 ].RegionConfigs [0 ].ElectableSpecs = & atlasV1.Specs {
1021
1030
InstanceSize : e2eSharedClusterTier ,
1022
1031
}
@@ -1074,7 +1083,7 @@ func defaultMaintenanceWindowAlertConfigs() []atlasV1.AlertConfiguration {
1074
1083
}
1075
1084
}
1076
1085
1077
- func referenceBackupSchedule (namespace , clusterName string ) * atlasV1.AtlasBackupSchedule {
1086
+ func referenceBackupSchedule (namespace , clusterName string , labels map [ string ] string ) * atlasV1.AtlasBackupSchedule {
1078
1087
dictionary := resources .AtlasNameToKubernetesName ()
1079
1088
return & atlasV1.AtlasBackupSchedule {
1080
1089
TypeMeta : v1.TypeMeta {
@@ -1084,6 +1093,7 @@ func referenceBackupSchedule(namespace, clusterName string) *atlasV1.AtlasBackup
1084
1093
ObjectMeta : v1.ObjectMeta {
1085
1094
Name : resources .NormalizeAtlasName (fmt .Sprintf ("%s-backupschedule" , clusterName ), dictionary ),
1086
1095
Namespace : namespace ,
1096
+ Labels : labels ,
1087
1097
},
1088
1098
Spec : atlasV1.AtlasBackupScheduleSpec {
1089
1099
PolicyRef : common.ResourceRefNamespaced {
@@ -1097,7 +1107,7 @@ func referenceBackupSchedule(namespace, clusterName string) *atlasV1.AtlasBackup
1097
1107
}
1098
1108
}
1099
1109
1100
- func referenceBackupPolicy (namespace , clusterName string ) * atlasV1.AtlasBackupPolicy {
1110
+ func referenceBackupPolicy (namespace , clusterName string , labels map [ string ] string ) * atlasV1.AtlasBackupPolicy {
1101
1111
dictionary := resources .AtlasNameToKubernetesName ()
1102
1112
return & atlasV1.AtlasBackupPolicy {
1103
1113
TypeMeta : v1.TypeMeta {
@@ -1107,6 +1117,7 @@ func referenceBackupPolicy(namespace, clusterName string) *atlasV1.AtlasBackupPo
1107
1117
ObjectMeta : v1.ObjectMeta {
1108
1118
Name : resources .NormalizeAtlasName (fmt .Sprintf ("%s-backuppolicy" , clusterName ), dictionary ),
1109
1119
Namespace : namespace ,
1120
+ Labels : labels ,
1110
1121
},
1111
1122
Spec : atlasV1.AtlasBackupPolicySpec {
1112
1123
Items : []atlasV1.AtlasBackupPolicyItem {
@@ -1139,22 +1150,22 @@ func referenceBackupPolicy(namespace, clusterName string) *atlasV1.AtlasBackupPo
1139
1150
}
1140
1151
}
1141
1152
1142
- func checkClustersData (t * testing.T , deployments []* atlasV1.AtlasDeployment , clusterNames []string , namespace , projectName string ) {
1153
+ func checkClustersData (t * testing.T , deployments []* atlasV1.AtlasDeployment , clusterNames []string , region , namespace , projectName string ) {
1143
1154
t .Helper ()
1144
1155
assert .Len (t , deployments , len (clusterNames ))
1145
1156
var entries []string
1146
1157
for _ , deployment := range deployments {
1147
1158
if deployment .Spec .ServerlessSpec != nil {
1148
1159
if ok := search .StringInSlice (clusterNames , deployment .Spec .ServerlessSpec .Name ); ok {
1149
1160
name := deployment .Spec .ServerlessSpec .Name
1150
- expectedDeployment := referenceServerless (name , namespace , projectName )
1161
+ expectedDeployment := referenceServerless (name , region , namespace , projectName , expectedLabels )
1151
1162
assert .Equal (t , expectedDeployment , deployment )
1152
1163
entries = append (entries , name )
1153
1164
}
1154
1165
} else if deployment .Spec .AdvancedDeploymentSpec != nil {
1155
1166
if ok := search .StringInSlice (clusterNames , deployment .Spec .AdvancedDeploymentSpec .Name ); ok {
1156
1167
name := deployment .Spec .AdvancedDeploymentSpec .Name
1157
- expectedDeployment := referenceAdvancedCluster (name , namespace , projectName )
1168
+ expectedDeployment := referenceAdvancedCluster (name , region , namespace , projectName , expectedLabels )
1158
1169
assert .Equal (t , expectedDeployment , deployment )
1159
1170
entries = append (entries , name )
1160
1171
}
@@ -1175,9 +1186,9 @@ func TestKubernetesConfigGenerate_ClustersWithBackup(t *testing.T) {
1175
1186
g .generateCluster ()
1176
1187
g .generateServerlessCluster ()
1177
1188
1178
- expectedDeployment := referenceAdvancedCluster (g .clusterName , targetNamespace , g .projectName )
1179
- expectedBackupSchedule := referenceBackupSchedule (targetNamespace , g .clusterName )
1180
- expectedBackupPolicy := referenceBackupPolicy (targetNamespace , g .clusterName )
1189
+ expectedDeployment := referenceAdvancedCluster (g .clusterName , g . clusterRegion , targetNamespace , g .projectName , expectedLabels )
1190
+ expectedBackupSchedule := referenceBackupSchedule (targetNamespace , g .clusterName , expectedLabels )
1191
+ expectedBackupPolicy := referenceBackupPolicy (targetNamespace , g .clusterName , expectedLabels )
1181
1192
1182
1193
cliPath , err := e2e .AtlasCLIBin ()
1183
1194
require .NoError (t , err )
@@ -1373,7 +1384,7 @@ func TestKubernetesConfigGenerate_ClustersWithBackup(t *testing.T) {
1373
1384
}
1374
1385
clustersCount := len (deployments )
1375
1386
require .True (t , clustersCount == 2 , "result should contain two clusters. actual: " , clustersCount )
1376
- checkClustersData (t , deployments , []string {g .clusterName , g .serverlessName }, targetNamespace , g .projectName )
1387
+ checkClustersData (t , deployments , []string {g .clusterName , g .serverlessName }, g . clusterRegion , targetNamespace , g .projectName )
1377
1388
})
1378
1389
1379
1390
t .Run ("Connection Secret present with non-empty credentials" , func (t * testing.T ) {
@@ -1444,7 +1455,7 @@ func TestKubernetesConfigGenerate_ClustersWithBackup(t *testing.T) {
1444
1455
deployments = append (deployments , deployment )
1445
1456
}
1446
1457
}
1447
- checkClustersData (t , deployments , []string {g .clusterName , g .serverlessName }, targetNamespace , g .projectName )
1458
+ checkClustersData (t , deployments , []string {g .clusterName , g .serverlessName }, g . clusterRegion , targetNamespace , g .projectName )
1448
1459
})
1449
1460
1450
1461
t .Run ("Connection Secret present with non-empty credentials" , func (t * testing.T ) {
@@ -1474,7 +1485,7 @@ func TestKubernetesConfigGenerateSharedCluster(t *testing.T) {
1474
1485
g .tier = e2eSharedClusterTier
1475
1486
g .generateCluster ()
1476
1487
1477
- expectedDeployment := referenceSharedCluster (g .clusterName , targetNamespace , g .projectName )
1488
+ expectedDeployment := referenceSharedCluster (g .clusterName , g . clusterRegion , targetNamespace , g .projectName , expectedLabels )
1478
1489
1479
1490
cliPath , err := e2e .AtlasCLIBin ()
1480
1491
require .NoError (t , err )
0 commit comments