29
29
description : ' If run only minimum tests for advanced_cluster, e.g. in PRs'
30
30
type : boolean
31
31
required : false
32
- default : false
33
-
32
+ default : false
33
+ use_sa :
34
+ description : " Run tests using Service Account instead of API Keys"
35
+ type : boolean
36
+ required : false
34
37
mongodb_atlas_org_id :
35
38
type : string
36
39
required : true
156
159
required : true
157
160
mongodb_atlas_rp_public_key :
158
161
required : true
162
+ mongodb_atlas_client_id :
163
+ required : true
164
+ mongodb_atlas_client_secret :
165
+ required : true
159
166
azure_directory_id :
160
167
required : true
161
168
azure_resource_group_name :
@@ -195,16 +202,17 @@ env:
195
202
MONGODB_ATLAS_BASE_URL : ${{ inputs.mongodb_atlas_base_url }}
196
203
MONGODB_REALM_BASE_URL : ${{ inputs.mongodb_realm_base_url }}
197
204
MONGODB_ATLAS_ORG_ID : ${{ inputs.mongodb_atlas_org_id }}
198
- MONGODB_ATLAS_PUBLIC_KEY : ${{ secrets.mongodb_atlas_public_key }}
199
- MONGODB_ATLAS_PRIVATE_KEY : ${{ secrets.mongodb_atlas_private_key }}
205
+ MONGODB_ATLAS_PUBLIC_KEY : ${{ inputs.use_sa == false && secrets.mongodb_atlas_public_key || '' }}
206
+ MONGODB_ATLAS_PRIVATE_KEY : ${{ inputs.use_sa == false && secrets.mongodb_atlas_private_key || '' }}
207
+ MONGODB_ATLAS_CLIENT_ID : ${{ inputs.use_sa && secrets.mongodb_atlas_client_id || '' }}
208
+ MONGODB_ATLAS_CLIENT_SECRET : ${{ inputs.use_sa && secrets.mongodb_atlas_client_secret || '' }}
200
209
MONGODB_ATLAS_PUBLIC_KEY_READ_ONLY : ${{ secrets.mongodb_atlas_public_key_read_only }}
201
210
MONGODB_ATLAS_PRIVATE_KEY_READ_ONLY : ${{ secrets.mongodb_atlas_private_key_read_only }}
202
211
MONGODB_ATLAS_GOV_PUBLIC_KEY : ${{ secrets.mongodb_atlas_gov_public_key }}
203
212
MONGODB_ATLAS_GOV_PRIVATE_KEY : ${{ secrets.mongodb_atlas_gov_private_key }}
204
213
MONGODB_ATLAS_GOV_BASE_URL : ${{ inputs.mongodb_atlas_gov_base_url }}
205
214
MONGODB_ATLAS_GOV_ORG_ID : ${{ inputs.mongodb_atlas_gov_org_id }}
206
215
207
-
208
216
jobs :
209
217
210
218
get-provider-version :
@@ -231,6 +239,7 @@ jobs:
231
239
outputs : # ensure resources are sorted alphabetically
232
240
advanced_cluster : ${{ steps.filter.outputs.advanced_cluster == 'true' || env.mustTrigger == 'true' }}
233
241
assume_role : ${{ steps.filter.outputs.assume_role == 'true' || env.mustTrigger == 'true' }}
242
+ authentication : ${{ steps.filter.outputs.authentication == 'true' || env.mustTrigger == 'true' }}
234
243
autogen : ${{ steps.filter.outputs.autogen == 'true' || env.mustTrigger == 'true' }}
235
244
backup : ${{ steps.filter.outputs.backup == 'true' || env.mustTrigger == 'true' }}
236
245
control_plane_ip_addresses : ${{ steps.filter.outputs.control_plane_ip_addresses == 'true' || env.mustTrigger == 'true' }}
@@ -264,6 +273,10 @@ jobs:
264
273
advanced_cluster:
265
274
- 'internal/service/advancedcluster/*.go'
266
275
assume_role:
276
+ - 'internal/config/*.go'
277
+ - 'internal/provider/*.go'
278
+ authentication:
279
+ - 'internal/config/*.go'
267
280
- 'internal/provider/*.go'
268
281
autogen:
269
282
- 'internal/common/autogen/*.go'
@@ -388,13 +401,13 @@ jobs:
388
401
MONGODB_ATLAS_LAST_VERSION : ${{ needs.get-provider-version.outputs.provider_version }}
389
402
HTTP_MOCKER_CAPTURE : ' true'
390
403
ACCTEST_REGEX_RUN : ${{ inputs.reduced_tests && '^TestAccMockable' || env.ACCTEST_REGEX_RUN }}
391
- ACCTEST_PACKAGES : |
392
- ./internal/service/advancedcluster
404
+ ACCTEST_PACKAGES : ./internal/service/advancedcluster
393
405
run : make testacc
394
406
395
407
advanced_cluster_tpf_mig_from_sdkv2 :
396
408
needs : [ change-detection, get-provider-version ]
397
- if : ${{ inputs.reduced_tests == false && (needs.change-detection.outputs.advanced_cluster == 'true' || inputs.test_group == 'advanced_cluster') }}
409
+ # Previous advanced_cluster versions don't support SA.
410
+ if : ${{ inputs.reduced_tests == false && inputs.use_sa == false && (needs.change-detection.outputs.advanced_cluster == 'true' || inputs.test_group == 'advanced_cluster') }}
398
411
runs-on : ubuntu-latest
399
412
permissions : {}
400
413
steps :
@@ -414,13 +427,13 @@ jobs:
414
427
MONGODB_ATLAS_LAST_1X_VERSION : ${{ inputs.mongodb_atlas_last_1x_version }}
415
428
MONGODB_ATLAS_TEST_SDKV2_TO_TPF : ' true'
416
429
ACCTEST_REGEX_RUN : ' ^TestV1xMig'
417
- ACCTEST_PACKAGES : |
418
- ./internal/service/advancedcluster
430
+ ACCTEST_PACKAGES : ./internal/service/advancedcluster
419
431
run : make testacc
420
432
421
433
advanced_cluster_tpf_mig_from_tpf_preview :
422
434
needs : [ change-detection, get-provider-version ]
423
- if : ${{ inputs.reduced_tests == false && (needs.change-detection.outputs.advanced_cluster == 'true' || inputs.test_group == 'advanced_cluster') }}
435
+ # Previous advanced_cluster versions don't support SA.
436
+ if : ${{ inputs.reduced_tests == false && inputs.use_sa == false && (needs.change-detection.outputs.advanced_cluster == 'true' || inputs.test_group == 'advanced_cluster') }}
424
437
runs-on : ubuntu-latest
425
438
permissions : {}
426
439
steps :
@@ -441,8 +454,7 @@ jobs:
441
454
MONGODB_ATLAS_LAST_1X_VERSION : ${{ inputs.mongodb_atlas_last_1x_version }}
442
455
MONGODB_ATLAS_TEST_SDKV2_TO_TPF : ' false'
443
456
ACCTEST_REGEX_RUN : ' ^TestV1xMig'
444
- ACCTEST_PACKAGES : |
445
- ./internal/service/advancedcluster
457
+ ACCTEST_PACKAGES : ./internal/service/advancedcluster
446
458
run : make testacc
447
459
448
460
assume_role :
@@ -503,8 +515,49 @@ jobs:
503
515
ACCTEST_REGEX_RUN : ^TestAccSTSAssumeRole_basic$
504
516
run : make testacc
505
517
506
- autogen :
518
+ authentication :
507
519
needs : [ change-detection, get-provider-version ]
520
+ if : ${{ needs.change-detection.outputs.authentication == 'true' || inputs.test_group == 'authentication' }}
521
+ runs-on : ubuntu-latest
522
+ permissions : {}
523
+ steps :
524
+ - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
525
+ with :
526
+ ref : ${{ inputs.ref || github.ref }}
527
+ - uses : actions/setup-go@44694675825211faa026b3c33043df3e48a5fa00
528
+ with :
529
+ go-version-file : ' go.mod'
530
+ - uses : hashicorp/setup-terraform@b9cd54a3c349d3f38e8881555d616ced269862dd
531
+ with :
532
+ terraform_version : ${{ inputs.terraform_version }}
533
+ terraform_wrapper : false
534
+ - name : Acceptance Tests (Service Account)
535
+ env :
536
+ MONGODB_ATLAS_PUBLIC_KEY : " "
537
+ MONGODB_ATLAS_PRIVATE_KEY : " "
538
+ MONGODB_ATLAS_CLIENT_ID : ${{ secrets.mongodb_atlas_client_id }}
539
+ MONGODB_ATLAS_CLIENT_SECRET : ${{ secrets.mongodb_atlas_client_secret }}
540
+ MONGODB_ATLAS_LAST_VERSION : ${{ needs.get-provider-version.outputs.provider_version }}
541
+ ACCTEST_REGEX_RUN : ' ^TestUnexisting' # TODO: SA not implemented in master yet
542
+ # ACCTEST_REGEX_RUN: '^TestAccServiceAccount'
543
+ ACCTEST_PACKAGES : ./internal/provider
544
+ run : make testacc
545
+ - name : Acceptance Tests (Service Account smoke tests) # small selection of fast tests to run with SA
546
+ env :
547
+ MONGODB_ATLAS_PUBLIC_KEY : " "
548
+ MONGODB_ATLAS_PRIVATE_KEY : " "
549
+ MONGODB_ATLAS_CLIENT_ID : ${{ secrets.mongodb_atlas_client_id }}
550
+ MONGODB_ATLAS_CLIENT_SECRET : ${{ secrets.mongodb_atlas_client_secret }}
551
+ MONGODB_ATLAS_LAST_VERSION : ${{ needs.get-provider-version.outputs.provider_version }}
552
+ ACCTEST_REGEX_RUN : ' ^TestUnexisting' # TODO: SA not implemented in master yet
553
+ ACCTEST_PACKAGES : |
554
+ ./internal/service/alertconfiguration
555
+ ./internal/service/databaseuser
556
+ ./internal/service/maintenancewindow
557
+ run : make testacc
558
+
559
+ autogen :
560
+ needs : [change-detection, get-provider-version]
508
561
if : ${{ needs.change-detection.outputs.autogen == 'true' || inputs.test_group == 'autogen' }}
509
562
runs-on : ubuntu-latest
510
563
permissions : {}
@@ -766,8 +819,9 @@ jobs:
766
819
run : make testacc
767
820
768
821
event_trigger :
769
- needs : [ change-detection, get-provider-version ]
770
- if : ${{ needs.change-detection.outputs.event_trigger == 'true' || inputs.test_group == 'event_trigger' }}
822
+ needs : [change-detection, get-provider-version]
823
+ # Realm SDK doesn't support SA.
824
+ if : ${{ inputs.use_sa == false && (needs.change-detection.outputs.event_trigger == 'true' || inputs.test_group == 'event_trigger') }}
771
825
runs-on : ubuntu-latest
772
826
permissions : {}
773
827
steps :
0 commit comments