@@ -32,44 +32,36 @@ func ensureServerlessPrivateEndpoints(service *workflow.Context, groupID string,
3232 if deploymentSpec == nil {
3333 return workflow .Terminate (workflow .ServerlessPrivateEndpointReady , "deployment spec is empty" )
3434 }
35- providerName , result := IsClusterSupportServerlessPE (deploymentSpec )
35+ providerName := GetServerlessProvider (deploymentSpec )
36+ if providerName == provider .ProviderGCP {
37+ if len (deploymentSpec .PrivateEndpoints ) == 0 {
38+ service .UnsetCondition (status .ServerlessPrivateEndpointReadyType )
39+ return workflow .OK ()
40+ } else {
41+ return workflow .Terminate (workflow .ServerlessPrivateEndpointReady , "private endpoints are not supported for GCP" )
42+ }
43+ }
44+
45+ result := syncServerlessPrivateEndpoints (context .Background (), service , groupID , deploymentName , providerName , deploymentSpec .PrivateEndpoints )
3646 if ! result .IsOk () {
47+ service .SetConditionFromResult (status .ServerlessPrivateEndpointReadyType , result )
3748 return result
3849 }
3950
4051 if deploymentSpec .PrivateEndpoints == nil {
4152 service .UnsetCondition (status .ServerlessPrivateEndpointReadyType )
42- service .EnsureStatusOption (status .AtlasDeploymentSPEOption (nil ))
4353 return workflow .OK ()
4454 }
4555
46- result = syncServerlessPrivateEndpoints (context .Background (), service , groupID , deploymentName , providerName , deploymentSpec .PrivateEndpoints )
47- if ! result .IsOk () {
48- service .SetConditionFromResult (status .ServerlessPrivateEndpointReadyType , result )
49- return result
50- }
5156 service .SetConditionTrue (status .ServerlessPrivateEndpointReadyType )
5257 return result
5358}
5459
55- func IsClusterSupportServerlessPE (deploymentSpec * mdbv1.ServerlessSpec ) (provider.ProviderName , workflow.Result ) {
56- if deploymentSpec .ProviderSettings .BackingProviderName == string (provider .ProviderAWS ) {
57- return provider .ProviderAWS , workflow .OK ()
58- }
59-
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 ()
60+ func GetServerlessProvider (deploymentSpec * mdbv1.ServerlessSpec ) provider.ProviderName {
61+ if deploymentSpec .ProviderSettings .ProviderName != provider .ProviderServerless {
62+ return deploymentSpec .ProviderSettings .ProviderName
7063 }
71-
72- return "" , workflow .Terminate (workflow .Internal , "serverless private endpoints are only supported for AWS and Azure" )
64+ return provider .ProviderName (deploymentSpec .ProviderSettings .BackingProviderName )
7365}
7466
7567func syncServerlessPrivateEndpoints (ctx context.Context , service * workflow.Context , groupID , deploymentName string , providerName provider.ProviderName , desiredPE []mdbv1.ServerlessPrivateEndpoint ) workflow.Result {
0 commit comments