Skip to content

Commit b38f566

Browse files
committed
add e2e for flex
1 parent 427c7e2 commit b38f566

File tree

1 file changed

+81
-0
lines changed

1 file changed

+81
-0
lines changed

test/e2e/atlas/kubernetes_config_generate_test.go

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1870,6 +1870,41 @@ func referenceServerless(name, region, namespace, projectName string, labels map
18701870
}
18711871
}
18721872

1873+
func referenceFlex(name, region, namespace, projectName string, labels map[string]string) *akov2.AtlasDeployment {
1874+
dictionary := resources.AtlasNameToKubernetesName()
1875+
return &akov2.AtlasDeployment{
1876+
TypeMeta: metav1.TypeMeta{
1877+
Kind: "AtlasDeployment",
1878+
APIVersion: "atlas.mongodb.com/v1",
1879+
},
1880+
ObjectMeta: metav1.ObjectMeta{
1881+
Name: resources.NormalizeAtlasName(fmt.Sprintf("%s-%s", projectName, name), dictionary),
1882+
Namespace: namespace,
1883+
Labels: labels,
1884+
},
1885+
Spec: akov2.AtlasDeploymentSpec{
1886+
ProjectDualReference: akov2.ProjectDualReference{
1887+
ProjectRef: &akov2common.ResourceRefNamespaced{
1888+
Name: resources.NormalizeAtlasName(projectName, dictionary),
1889+
Namespace: namespace,
1890+
},
1891+
},
1892+
FlexSpec: &akov2.FlexSpec{
1893+
Name: name,
1894+
ProviderSettings: &akov2.FlexProviderSettings{
1895+
BackingProviderName: string(akov2provider.ProviderAWS),
1896+
RegionName: region,
1897+
},
1898+
},
1899+
},
1900+
Status: akov2status.AtlasDeploymentStatus{
1901+
Common: akoapi.Common{
1902+
Conditions: []akoapi.Condition{},
1903+
},
1904+
},
1905+
}
1906+
}
1907+
18731908
func referenceSharedCluster(name, region, namespace, projectName string, labels map[string]string) *akov2.AtlasDeployment {
18741909
cluster := referenceAdvancedCluster(name, region, namespace, projectName, labels, "")
18751910
cluster.Spec.DeploymentSpec.ReplicationSpecs[0].RegionConfigs[0].ElectableSpecs = &akov2.Specs{
@@ -2255,6 +2290,52 @@ func TestKubernetesConfigGenerateSharedCluster(t *testing.T) {
22552290
assert.Equal(t, targetNamespace, secret.Namespace)
22562291
}
22572292

2293+
func TestKubernetesConfigGenerateFlexCluster(t *testing.T) {
2294+
n, err := e2e.RandInt(255)
2295+
require.NoError(t, err)
2296+
g := newAtlasE2ETestGenerator(t)
2297+
g.generateProject(fmt.Sprintf("kubernetes-%s", n))
2298+
g.tier = e2eSharedClusterTier
2299+
g.generateFlexCluster()
2300+
2301+
expectedDeployment := referenceFlex(g.clusterName, g.clusterRegion, targetNamespace, g.projectName, expectedLabels)
2302+
2303+
cliPath, err := e2e.AtlasCLIBin()
2304+
require.NoError(t, err)
2305+
2306+
// always register atlas entities
2307+
require.NoError(t, akov2.AddToScheme(scheme.Scheme))
2308+
2309+
cmd := exec.Command(cliPath,
2310+
"kubernetes",
2311+
"config",
2312+
"generate",
2313+
"--projectId",
2314+
g.projectID,
2315+
"--targetNamespace",
2316+
targetNamespace,
2317+
"--includeSecrets")
2318+
cmd.Env = os.Environ()
2319+
2320+
resp, err := e2e.RunAndGetStdOut(cmd)
2321+
t.Log(string(resp))
2322+
require.NoError(t, err, string(resp))
2323+
var objects []runtime.Object
2324+
objects, err = getK8SEntities(resp)
2325+
require.NoError(t, err, "should not fail on decode")
2326+
require.NotEmpty(t, objects)
2327+
2328+
p, found := findAtlasProject(objects)
2329+
require.True(t, found, "AtlasProject is not found in results")
2330+
assert.Equal(t, targetNamespace, p.Namespace)
2331+
ds := atlasDeployments(objects)
2332+
assert.Len(t, ds, 1)
2333+
assert.Equal(t, expectedDeployment, ds[0])
2334+
secret, found := findSecret(objects)
2335+
require.True(t, found, "Secret is not found in results")
2336+
assert.Equal(t, targetNamespace, secret.Namespace)
2337+
}
2338+
22582339
func atlasDeployments(objects []runtime.Object) []*akov2.AtlasDeployment {
22592340
var ds []*akov2.AtlasDeployment
22602341
for i := range objects {

0 commit comments

Comments
 (0)