Skip to content

Commit 50d1ba7

Browse files
committed
migrate network peering to new Altas SDK
1 parent 4afbd73 commit 50d1ba7

File tree

4 files changed

+164
-158
lines changed

4 files changed

+164
-158
lines changed

pkg/api/v1/networkpeer.go

Lines changed: 43 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
package v1
22

33
import (
4-
"go.mongodb.org/atlas/mongodbatlas"
4+
"go.mongodb.org/atlas-sdk/v20231115004/admin"
55

66
"github.com/mongodb/mongodb-atlas-kubernetes/v2/internal/compat"
7+
"github.com/mongodb/mongodb-atlas-kubernetes/v2/internal/pointer"
78
"github.com/mongodb/mongodb-atlas-kubernetes/v2/pkg/api/v1/provider"
89
)
910

@@ -52,38 +53,57 @@ type NetworkPeer struct {
5253
NetworkName string `json:"networkName,omitempty"`
5354
}
5455

55-
func (in *NetworkPeer) ToAtlas() (*mongodbatlas.Peer, error) {
56-
result := &mongodbatlas.Peer{}
56+
// NewNetworkPeerFromAtlas creates a network peer based off a network peering connection from Atlas.
57+
// Note: ContainerRegion and AtlasCIDRBlock are unset
58+
// as this information is not provided by Atlas for a peering connection.
59+
func NewNetworkPeerFromAtlas(atlasPeer admin.BaseNetworkPeeringConnectionSettings) *NetworkPeer {
60+
return &NetworkPeer{
61+
AccepterRegionName: atlasPeer.GetAccepterRegionName(),
62+
AWSAccountID: atlasPeer.GetAwsAccountId(),
63+
ContainerID: atlasPeer.GetContainerId(),
64+
ProviderName: provider.ProviderName(atlasPeer.GetProviderName()),
65+
RouteTableCIDRBlock: atlasPeer.GetRouteTableCidrBlock(),
66+
VpcID: atlasPeer.GetVpcId(),
67+
AzureDirectoryID: atlasPeer.GetAzureDirectoryId(),
68+
AzureSubscriptionID: atlasPeer.GetAzureSubscriptionId(),
69+
ResourceGroupName: atlasPeer.GetResourceGroupName(),
70+
VNetName: atlasPeer.GetVnetName(),
71+
GCPProjectID: atlasPeer.GetGcpProjectId(),
72+
NetworkName: atlasPeer.GetNetworkName(),
73+
}
74+
}
75+
func (in *NetworkPeer) ToAtlas() (*admin.BaseNetworkPeeringConnectionSettings, error) {
76+
result := &admin.BaseNetworkPeeringConnectionSettings{}
5777
err := compat.JSONCopy(result, in)
5878
return result, err
5979
}
6080

61-
func (in *NetworkPeer) ToAtlasPeer() *mongodbatlas.Peer {
81+
func (in *NetworkPeer) ToAtlasPeer() *admin.BaseNetworkPeeringConnectionSettings {
6282
switch in.ProviderName {
6383
case provider.ProviderAWS:
64-
return &mongodbatlas.Peer{
65-
AccepterRegionName: in.AccepterRegionName,
66-
AWSAccountID: in.AWSAccountID,
67-
ContainerID: in.ContainerID,
68-
ProviderName: string(in.ProviderName),
69-
RouteTableCIDRBlock: in.RouteTableCIDRBlock,
70-
VpcID: in.VpcID,
84+
return &admin.BaseNetworkPeeringConnectionSettings{
85+
AccepterRegionName: pointer.SetOrNil(in.AccepterRegionName, ""),
86+
AwsAccountId: pointer.SetOrNil(in.AWSAccountID, ""),
87+
ContainerId: in.ContainerID,
88+
ProviderName: pointer.SetOrNil(string(in.ProviderName), ""),
89+
RouteTableCidrBlock: pointer.SetOrNil(in.RouteTableCIDRBlock, ""),
90+
VpcId: pointer.SetOrNil(in.VpcID, ""),
7191
}
7292
case provider.ProviderGCP:
73-
return &mongodbatlas.Peer{
74-
ContainerID: in.ContainerID,
75-
ProviderName: string(in.ProviderName),
76-
GCPProjectID: in.GCPProjectID,
77-
NetworkName: in.NetworkName,
93+
return &admin.BaseNetworkPeeringConnectionSettings{
94+
ContainerId: in.ContainerID,
95+
ProviderName: pointer.SetOrNil(string(in.ProviderName), ""),
96+
GcpProjectId: pointer.SetOrNil(in.GCPProjectID, ""),
97+
NetworkName: pointer.SetOrNil(in.NetworkName, ""),
7898
}
7999
case provider.ProviderAzure:
80-
return &mongodbatlas.Peer{
81-
ContainerID: in.ContainerID,
82-
ProviderName: string(in.ProviderName),
83-
AzureDirectoryID: in.AzureDirectoryID,
84-
AzureSubscriptionID: in.AzureSubscriptionID,
85-
ResourceGroupName: in.ResourceGroupName,
86-
VNetName: in.VNetName,
100+
return &admin.BaseNetworkPeeringConnectionSettings{
101+
ContainerId: in.ContainerID,
102+
ProviderName: pointer.SetOrNil(string(in.ProviderName), ""),
103+
AzureDirectoryId: pointer.SetOrNil(in.AzureDirectoryID, ""),
104+
AzureSubscriptionId: pointer.SetOrNil(in.AzureSubscriptionID, ""),
105+
ResourceGroupName: pointer.SetOrNil(in.ResourceGroupName, ""),
106+
VnetName: pointer.SetOrNil(in.VNetName, ""),
87107
}
88108
}
89109

pkg/api/v1/status/networkpeer.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package status
22

33
import (
4-
"go.mongodb.org/atlas/mongodbatlas"
4+
"go.mongodb.org/atlas-sdk/v20231115004/admin"
55

66
"github.com/mongodb/mongodb-atlas-kubernetes/v2/pkg/api/v1/provider"
77
)
@@ -38,22 +38,22 @@ type AtlasNetworkPeer struct {
3838
ContainerID string `json:"containerId,omitempty"`
3939
}
4040

41-
func NewNetworkPeerStatus(atlasPeer mongodbatlas.Peer, providerName provider.ProviderName, vpcName string, container mongodbatlas.Container) AtlasNetworkPeer {
41+
func NewNetworkPeerStatus(atlasPeer admin.BaseNetworkPeeringConnectionSettings, providerName provider.ProviderName, vpcName string, container admin.CloudProviderContainer) AtlasNetworkPeer {
4242
return AtlasNetworkPeer{
43-
ID: atlasPeer.ID,
43+
ID: atlasPeer.GetId(),
4444
ProviderName: providerName,
45-
Region: atlasPeer.AccepterRegionName,
46-
StatusName: atlasPeer.StatusName,
47-
ErrorMessage: atlasPeer.ErrorMessage,
48-
ErrorState: atlasPeer.ErrorState,
49-
ErrorStateName: atlasPeer.ErrorStateName,
50-
ConnectionID: atlasPeer.ConnectionID,
51-
Status: atlasPeer.Status,
45+
Region: atlasPeer.GetAccepterRegionName(),
46+
StatusName: atlasPeer.GetStatusName(),
47+
ErrorMessage: atlasPeer.GetErrorMessage(),
48+
ErrorState: atlasPeer.GetErrorState(),
49+
ErrorStateName: atlasPeer.GetErrorStateName(),
50+
ConnectionID: atlasPeer.GetConnectionId(),
51+
Status: atlasPeer.GetStatus(),
5252
VPC: vpcName,
53-
AtlasNetworkName: container.NetworkName,
54-
AtlasGCPProjectID: container.GCPProjectID,
55-
ContainerID: container.ID,
56-
GCPProjectID: atlasPeer.GCPProjectID,
53+
AtlasNetworkName: container.GetNetworkName(),
54+
AtlasGCPProjectID: container.GetGcpProjectId(),
55+
ContainerID: container.GetId(),
56+
GCPProjectID: atlasPeer.GetGcpProjectId(),
5757
}
5858
}
5959

pkg/controller/atlasproject/atlasproject_controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ func (r *AtlasProjectReconciler) ensureDeletionFinalizer(workflowCtx *workflow.C
249249
setCondition(workflowCtx, status.PrivateEndpointReadyType, result)
250250
return result
251251
}
252-
if result = DeleteAllNetworkPeers(workflowCtx.Context, project.ID(), workflowCtx.Client.Peers, workflowCtx.Log); !result.IsOk() {
252+
if result = DeleteAllNetworkPeers(workflowCtx.Context, project.ID(), workflowCtx.SdkClient.NetworkPeeringApi, workflowCtx.Log); !result.IsOk() {
253253
setCondition(workflowCtx, status.NetworkPeerReadyType, result)
254254
return result
255255
}

0 commit comments

Comments
 (0)