Skip to content

Commit a3d64fc

Browse files
Fixed labels for kubernetes E2E tests (#1664)
1 parent ba2c643 commit a3d64fc

File tree

5 files changed

+44
-32
lines changed

5 files changed

+44
-32
lines changed

internal/cli/atlas/kubernetes/config/generate.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,13 +137,12 @@ func GenerateBuilder() *cobra.Command {
137137
},
138138
}
139139

140-
supportedVersions := features.SupportedVersions()
141140
cmd.Flags().StringVar(&opts.ProjectID, flag.ProjectID, "", usage.ProjectID)
142141
cmd.Flags().StringVar(&opts.OrgID, flag.OrgID, "", usage.OrgID)
143142
cmd.Flags().StringSliceVar(&opts.clusterName, flag.ClusterName, []string{}, usage.ExporterClusterName)
144143
cmd.Flags().BoolVar(&opts.includeSecrets, flag.OperatorIncludeSecrets, false, usage.OperatorIncludeSecrets)
145144
cmd.Flags().StringVar(&opts.targetNamespace, flag.OperatorTargetNamespace, "", usage.OperatorTargetNamespace)
146-
cmd.Flags().StringVar(&opts.operatorVersion, flag.OperatorVersion, supportedVersions[len(supportedVersions)-1], usage.OperatorVersion)
145+
cmd.Flags().StringVar(&opts.operatorVersion, flag.OperatorVersion, features.LatestOperatorVersion, usage.OperatorVersion)
147146

148147
return cmd
149148
}

internal/kubernetes/operator/features/crds.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
)
2525

2626
const (
27+
LatestOperatorVersion = "1.6.0"
2728
maxDepth = 100
2829
ResourceVersion = "app.kubernetes.io/version"
2930
ResourceAtlasProject = "atlasprojects"

test/e2e/atlas/atlas_e2e_test_generator_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ type atlasE2ETestGenerator struct {
3636
projectID string
3737
projectName string
3838
clusterName string
39+
clusterRegion string
3940
serverlessName string
4041
teamName string
4142
teamID string
@@ -244,7 +245,7 @@ func (g *atlasE2ETestGenerator) generateCluster() {
244245
g.tier = e2eTier()
245246
}
246247

247-
g.clusterName, err = deployClusterForProject(g.projectID, g.tier, g.enableBackup)
248+
g.clusterName, g.clusterRegion, err = deployClusterForProject(g.projectID, g.tier, g.enableBackup)
248249
if err != nil {
249250
g.t.Errorf("unexpected error: %v", err)
250251
}

test/e2e/atlas/helper_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -193,18 +193,18 @@ func deleteServerlessInstanceForProject(projectID, clusterName string) error {
193193
return nil
194194
}
195195

196-
func deployClusterForProject(projectID, tier string, enableBackup bool) (string, error) {
196+
func deployClusterForProject(projectID, tier string, enableBackup bool) (string, string, error) {
197197
cliPath, err := e2e.AtlasCLIBin()
198198
if err != nil {
199-
return "", err
199+
return "", "", err
200200
}
201201
clusterName, err := RandClusterName()
202202
if err != nil {
203-
return "", err
203+
return "", "", err
204204
}
205205
region, err := newAvailableRegion(projectID, tier, e2eClusterProvider)
206206
if err != nil {
207-
return "", err
207+
return "", "", err
208208
}
209209
args := []string{
210210
clustersEntity,
@@ -225,7 +225,7 @@ func deployClusterForProject(projectID, tier string, enableBackup bool) (string,
225225
create := exec.Command(cliPath, args...)
226226
create.Env = os.Environ()
227227
if resp, err := create.CombinedOutput(); err != nil {
228-
return "", fmt.Errorf("error creating cluster %w: %s", err, string(resp))
228+
return "", "", fmt.Errorf("error creating cluster %w: %s", err, string(resp))
229229
}
230230

231231
watchArgs := []string{
@@ -239,9 +239,9 @@ func deployClusterForProject(projectID, tier string, enableBackup bool) (string,
239239
watch := exec.Command(cliPath, watchArgs...)
240240
watch.Env = os.Environ()
241241
if resp, err := watch.CombinedOutput(); err != nil {
242-
return "", fmt.Errorf("error watching cluster %w: %s", err, string(resp))
242+
return "", "", fmt.Errorf("error watching cluster %w: %s", err, string(resp))
243243
}
244-
return clusterName, nil
244+
return clusterName, region, nil
245245
}
246246

247247
func e2eTier() string {

test/e2e/atlas/kubernetes_config_generate_test.go

Lines changed: 33 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
"strings"
2828
"testing"
2929

30+
"github.com/mongodb/mongodb-atlas-cli/internal/kubernetes/operator/features"
3031
"github.com/mongodb/mongodb-atlas-cli/internal/kubernetes/operator/pointers"
3132
"github.com/mongodb/mongodb-atlas-cli/internal/kubernetes/operator/resources"
3233
"github.com/mongodb/mongodb-atlas-cli/internal/search"
@@ -48,6 +49,10 @@ import (
4849

4950
const targetNamespace = "importer-namespace"
5051

52+
var expectedLabels = map[string]string{
53+
features.ResourceVersion: features.LatestOperatorVersion,
54+
}
55+
5156
func getK8SEntities(data []byte) ([]runtime.Object, error) {
5257
b := bufio.NewReader(bytes.NewReader(data))
5358
r := k8syaml.NewYAMLReader(b)
@@ -92,7 +97,7 @@ func InitialSetupWithTeam(t *testing.T) KubernetesConfigGenerateProjectSuite {
9297
s.generator = newAtlasE2ETestGenerator(s.t)
9398
s.generator.generateTeam("Kubernetes")
9499
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)
96101

97102
cliPath, err := e2e.AtlasCLIBin()
98103
require.NoError(s.t, err)
@@ -112,7 +117,7 @@ func InitialSetup(t *testing.T) KubernetesConfigGenerateProjectSuite {
112117
}
113118
s.generator = newAtlasE2ETestGenerator(s.t)
114119
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)
116121

117122
cliPath, err := e2e.AtlasCLIBin()
118123
require.NoError(s.t, err)
@@ -734,7 +739,7 @@ func TestProjectAndTeams(t *testing.T) {
734739
t.Run("Add team to project", func(t *testing.T) {
735740
expectedTeam := referenceTeam(generator.teamName, targetNamespace, []atlasV1.TeamUser{
736741
atlasV1.TeamUser(generator.teamUser),
737-
}, generator.projectName)
742+
}, generator.projectName, expectedLabels)
738743

739744
expectedProject.Spec.Teams = []atlasV1.Team{
740745
{
@@ -795,7 +800,7 @@ func TestProjectAndTeams(t *testing.T) {
795800
})
796801
}
797802

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 {
799804
dictionary := resources.AtlasNameToKubernetesName()
800805

801806
return &atlasV1.AtlasTeam{
@@ -806,6 +811,7 @@ func referenceTeam(name, namespace string, users []atlasV1.TeamUser, projectName
806811
ObjectMeta: v1.ObjectMeta{
807812
Name: resources.NormalizeAtlasName(fmt.Sprintf("%s-team-%s", projectName, name), dictionary),
808813
Namespace: namespace,
814+
Labels: labels,
809815
},
810816
Spec: atlasV1.TeamSpec{
811817
Name: name,
@@ -839,7 +845,7 @@ func checkProject(t *testing.T, output []runtime.Object, expected *atlasV1.Atlas
839845
})
840846
}
841847

842-
func referenceProject(name, namespace string) *atlasV1.AtlasProject {
848+
func referenceProject(name, namespace string, labels map[string]string) *atlasV1.AtlasProject {
843849
dictionary := resources.AtlasNameToKubernetesName()
844850
return &atlasV1.AtlasProject{
845851
TypeMeta: v1.TypeMeta{
@@ -849,6 +855,7 @@ func referenceProject(name, namespace string) *atlasV1.AtlasProject {
849855
ObjectMeta: v1.ObjectMeta{
850856
Name: resources.NormalizeAtlasName(name, dictionary),
851857
Namespace: namespace,
858+
Labels: labels,
852859
},
853860
Status: status.AtlasProjectStatus{
854861
Common: status.Common{
@@ -887,7 +894,7 @@ func referenceProject(name, namespace string) *atlasV1.AtlasProject {
887894
}
888895
}
889896

890-
func referenceAdvancedCluster(name, namespace, projectName string) *atlasV1.AtlasDeployment {
897+
func referenceAdvancedCluster(name, region, namespace, projectName string, labels map[string]string) *atlasV1.AtlasDeployment {
891898
dictionary := resources.AtlasNameToKubernetesName()
892899
return &atlasV1.AtlasDeployment{
893900
TypeMeta: v1.TypeMeta{
@@ -897,6 +904,7 @@ func referenceAdvancedCluster(name, namespace, projectName string) *atlasV1.Atla
897904
ObjectMeta: v1.ObjectMeta{
898905
Name: resources.NormalizeAtlasName(name, dictionary),
899906
Namespace: namespace,
907+
Labels: labels,
900908
},
901909
Spec: atlasV1.AtlasDeploymentSpec{
902910
Project: common.ResourceRefNamespaced{
@@ -960,7 +968,7 @@ func referenceAdvancedCluster(name, namespace, projectName string) *atlasV1.Atla
960968
},
961969
Priority: pointers.MakePtr(7),
962970
ProviderName: string(provider.ProviderAWS),
963-
RegionName: "US_EAST_1",
971+
RegionName: region,
964972
},
965973
},
966974
},
@@ -982,7 +990,7 @@ func referenceAdvancedCluster(name, namespace, projectName string) *atlasV1.Atla
982990
}
983991
}
984992

985-
func referenceServerless(name, namespace, projectName string) *atlasV1.AtlasDeployment {
993+
func referenceServerless(name, region, namespace, projectName string, labels map[string]string) *atlasV1.AtlasDeployment {
986994
dictionary := resources.AtlasNameToKubernetesName()
987995
return &atlasV1.AtlasDeployment{
988996
TypeMeta: v1.TypeMeta{
@@ -992,6 +1000,7 @@ func referenceServerless(name, namespace, projectName string) *atlasV1.AtlasDepl
9921000
ObjectMeta: v1.ObjectMeta{
9931001
Name: resources.NormalizeAtlasName(name, dictionary),
9941002
Namespace: namespace,
1003+
Labels: labels,
9951004
},
9961005
Spec: atlasV1.AtlasDeploymentSpec{
9971006
Project: common.ResourceRefNamespaced{
@@ -1003,7 +1012,7 @@ func referenceServerless(name, namespace, projectName string) *atlasV1.AtlasDepl
10031012
ProviderSettings: &atlasV1.ProviderSettingsSpec{
10041013
BackingProviderName: string(provider.ProviderAWS),
10051014
ProviderName: provider.ProviderServerless,
1006-
RegionName: "US_EAST_1",
1015+
RegionName: region,
10071016
},
10081017
},
10091018
},
@@ -1015,8 +1024,8 @@ func referenceServerless(name, namespace, projectName string) *atlasV1.AtlasDepl
10151024
}
10161025
}
10171026

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)
10201029
cluster.Spec.AdvancedDeploymentSpec.ReplicationSpecs[0].RegionConfigs[0].ElectableSpecs = &atlasV1.Specs{
10211030
InstanceSize: e2eSharedClusterTier,
10221031
}
@@ -1074,7 +1083,7 @@ func defaultMaintenanceWindowAlertConfigs() []atlasV1.AlertConfiguration {
10741083
}
10751084
}
10761085

1077-
func referenceBackupSchedule(namespace, clusterName string) *atlasV1.AtlasBackupSchedule {
1086+
func referenceBackupSchedule(namespace, clusterName string, labels map[string]string) *atlasV1.AtlasBackupSchedule {
10781087
dictionary := resources.AtlasNameToKubernetesName()
10791088
return &atlasV1.AtlasBackupSchedule{
10801089
TypeMeta: v1.TypeMeta{
@@ -1084,6 +1093,7 @@ func referenceBackupSchedule(namespace, clusterName string) *atlasV1.AtlasBackup
10841093
ObjectMeta: v1.ObjectMeta{
10851094
Name: resources.NormalizeAtlasName(fmt.Sprintf("%s-backupschedule", clusterName), dictionary),
10861095
Namespace: namespace,
1096+
Labels: labels,
10871097
},
10881098
Spec: atlasV1.AtlasBackupScheduleSpec{
10891099
PolicyRef: common.ResourceRefNamespaced{
@@ -1097,7 +1107,7 @@ func referenceBackupSchedule(namespace, clusterName string) *atlasV1.AtlasBackup
10971107
}
10981108
}
10991109

1100-
func referenceBackupPolicy(namespace, clusterName string) *atlasV1.AtlasBackupPolicy {
1110+
func referenceBackupPolicy(namespace, clusterName string, labels map[string]string) *atlasV1.AtlasBackupPolicy {
11011111
dictionary := resources.AtlasNameToKubernetesName()
11021112
return &atlasV1.AtlasBackupPolicy{
11031113
TypeMeta: v1.TypeMeta{
@@ -1107,6 +1117,7 @@ func referenceBackupPolicy(namespace, clusterName string) *atlasV1.AtlasBackupPo
11071117
ObjectMeta: v1.ObjectMeta{
11081118
Name: resources.NormalizeAtlasName(fmt.Sprintf("%s-backuppolicy", clusterName), dictionary),
11091119
Namespace: namespace,
1120+
Labels: labels,
11101121
},
11111122
Spec: atlasV1.AtlasBackupPolicySpec{
11121123
Items: []atlasV1.AtlasBackupPolicyItem{
@@ -1139,22 +1150,22 @@ func referenceBackupPolicy(namespace, clusterName string) *atlasV1.AtlasBackupPo
11391150
}
11401151
}
11411152

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) {
11431154
t.Helper()
11441155
assert.Len(t, deployments, len(clusterNames))
11451156
var entries []string
11461157
for _, deployment := range deployments {
11471158
if deployment.Spec.ServerlessSpec != nil {
11481159
if ok := search.StringInSlice(clusterNames, deployment.Spec.ServerlessSpec.Name); ok {
11491160
name := deployment.Spec.ServerlessSpec.Name
1150-
expectedDeployment := referenceServerless(name, namespace, projectName)
1161+
expectedDeployment := referenceServerless(name, region, namespace, projectName, expectedLabels)
11511162
assert.Equal(t, expectedDeployment, deployment)
11521163
entries = append(entries, name)
11531164
}
11541165
} else if deployment.Spec.AdvancedDeploymentSpec != nil {
11551166
if ok := search.StringInSlice(clusterNames, deployment.Spec.AdvancedDeploymentSpec.Name); ok {
11561167
name := deployment.Spec.AdvancedDeploymentSpec.Name
1157-
expectedDeployment := referenceAdvancedCluster(name, namespace, projectName)
1168+
expectedDeployment := referenceAdvancedCluster(name, region, namespace, projectName, expectedLabels)
11581169
assert.Equal(t, expectedDeployment, deployment)
11591170
entries = append(entries, name)
11601171
}
@@ -1175,9 +1186,9 @@ func TestKubernetesConfigGenerate_ClustersWithBackup(t *testing.T) {
11751186
g.generateCluster()
11761187
g.generateServerlessCluster()
11771188

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)
11811192

11821193
cliPath, err := e2e.AtlasCLIBin()
11831194
require.NoError(t, err)
@@ -1373,7 +1384,7 @@ func TestKubernetesConfigGenerate_ClustersWithBackup(t *testing.T) {
13731384
}
13741385
clustersCount := len(deployments)
13751386
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)
13771388
})
13781389

13791390
t.Run("Connection Secret present with non-empty credentials", func(t *testing.T) {
@@ -1444,7 +1455,7 @@ func TestKubernetesConfigGenerate_ClustersWithBackup(t *testing.T) {
14441455
deployments = append(deployments, deployment)
14451456
}
14461457
}
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)
14481459
})
14491460

14501461
t.Run("Connection Secret present with non-empty credentials", func(t *testing.T) {
@@ -1474,7 +1485,7 @@ func TestKubernetesConfigGenerateSharedCluster(t *testing.T) {
14741485
g.tier = e2eSharedClusterTier
14751486
g.generateCluster()
14761487

1477-
expectedDeployment := referenceSharedCluster(g.clusterName, targetNamespace, g.projectName)
1488+
expectedDeployment := referenceSharedCluster(g.clusterName, g.clusterRegion, targetNamespace, g.projectName, expectedLabels)
14781489

14791490
cliPath, err := e2e.AtlasCLIBin()
14801491
require.NoError(t, err)

0 commit comments

Comments
 (0)