Skip to content

Commit fa4db2c

Browse files
committed
feat(mongodb): add tsl certificate
1 parent 9662e6a commit fa4db2c

File tree

3 files changed

+2265
-284
lines changed

3 files changed

+2265
-284
lines changed

internal/services/mongodb/instance.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ import (
77
"strings"
88
"time"
99

10+
"bytes"
11+
"io"
12+
1013
"github.com/hashicorp/go-cty/cty"
1114
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1215
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/customdiff"
@@ -233,6 +236,11 @@ func ResourceInstance() *schema.Resource {
233236
// Common
234237
"region": regional.Schema(),
235238
"project_id": account.ProjectIDSchema(),
239+
"tls_certificate": {
240+
Type: schema.TypeString,
241+
Computed: true,
242+
Description: "PEM-encoded TLS certificate for MongoDB",
243+
},
236244
},
237245
CustomizeDiff: customdiff.All(
238246
func(ctx context.Context, d *schema.ResourceDiff, meta any) error {
@@ -460,6 +468,18 @@ func ResourceInstanceRead(ctx context.Context, d *schema.ResourceData, m any) di
460468

461469
_ = d.Set("settings", map[string]string{})
462470

471+
cert, err := mongodbAPI.GetInstanceCertificate(&mongodb.GetInstanceCertificateRequest{
472+
Region: region,
473+
InstanceID: ID,
474+
}, scw.WithContext(ctx))
475+
if err == nil && cert != nil {
476+
var buf bytes.Buffer
477+
_, err := io.Copy(&buf, cert.Content)
478+
if err == nil {
479+
_ = d.Set("tls_certificate", buf.String())
480+
}
481+
}
482+
463483
return diags
464484
}
465485

internal/services/mongodb/instance_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ func TestAccMongoDBInstance_Basic(t *testing.T) {
4141
resource.TestCheckResourceAttr("scaleway_mongodb_instance.main", "node_number", "1"),
4242
resource.TestCheckResourceAttr("scaleway_mongodb_instance.main", "user_name", "my_initial_user"),
4343
resource.TestCheckResourceAttr("scaleway_mongodb_instance.main", "password", "thiZ_is_v&ry_s3cret"),
44+
resource.TestCheckResourceAttrSet("scaleway_mongodb_instance.main", "tls_certificate"),
4445
),
4546
},
4647
},

0 commit comments

Comments
 (0)