Skip to content

Commit 090038f

Browse files
authored
Fix provider choice function for SPE (#803)
1 parent 7a41ee2 commit 090038f

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

pkg/controller/atlasdeployment/serverless_private_endpoint.go

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ func ensureServerlessPrivateEndpoints(service *workflow.Context, groupID string,
3232
if deploymentSpec == nil {
3333
return workflow.Terminate(workflow.ServerlessPrivateEndpointReady, "deployment spec is empty")
3434
}
35-
if result := IsClusterSupportServerlessPE(deploymentSpec); !result.IsOk() {
35+
providerName, result := IsClusterSupportServerlessPE(deploymentSpec)
36+
if !result.IsOk() {
3637
return result
3738
}
3839

@@ -42,7 +43,7 @@ func ensureServerlessPrivateEndpoints(service *workflow.Context, groupID string,
4243
return workflow.OK()
4344
}
4445

45-
result := syncServerlessPrivateEndpoints(context.Background(), service, groupID, deploymentName, provider.ProviderName(deploymentSpec.ProviderSettings.BackingProviderName), deploymentSpec.PrivateEndpoints)
46+
result = syncServerlessPrivateEndpoints(context.Background(), service, groupID, deploymentName, providerName, deploymentSpec.PrivateEndpoints)
4647
if !result.IsOk() {
4748
service.SetConditionFromResult(status.ServerlessPrivateEndpointReadyType, result)
4849
return result
@@ -51,13 +52,24 @@ func ensureServerlessPrivateEndpoints(service *workflow.Context, groupID string,
5152
return result
5253
}
5354

54-
func IsClusterSupportServerlessPE(deploymentSpec *mdbv1.ServerlessSpec) workflow.Result {
55-
if deploymentSpec.ProviderSettings.BackingProviderName != string(provider.ProviderAWS) &&
56-
deploymentSpec.ProviderSettings.BackingProviderName != string(provider.ProviderAzure) {
57-
return workflow.Terminate(workflow.Internal, "serverless private endpoints are only supported for AWS and Azure")
55+
func IsClusterSupportServerlessPE(deploymentSpec *mdbv1.ServerlessSpec) (provider.ProviderName, workflow.Result) {
56+
if deploymentSpec.ProviderSettings.BackingProviderName == string(provider.ProviderAWS) {
57+
return provider.ProviderAWS, workflow.OK()
5858
}
5959

60-
return workflow.OK()
60+
if deploymentSpec.ProviderSettings.BackingProviderName == string(provider.ProviderAzure) {
61+
return provider.ProviderAzure, workflow.OK()
62+
}
63+
64+
if deploymentSpec.ProviderSettings.ProviderName == provider.ProviderAWS {
65+
return provider.ProviderAWS, workflow.OK()
66+
}
67+
68+
if deploymentSpec.ProviderSettings.ProviderName == provider.ProviderAzure {
69+
return provider.ProviderAzure, workflow.OK()
70+
}
71+
72+
return "", workflow.Terminate(workflow.Internal, "serverless private endpoints are only supported for AWS and Azure")
6173
}
6274

6375
func syncServerlessPrivateEndpoints(ctx context.Context, service *workflow.Context, groupID, deploymentName string, providerName provider.ProviderName, desiredPE []mdbv1.ServerlessPrivateEndpoint) workflow.Result {

0 commit comments

Comments
 (0)