@@ -240,4 +240,96 @@ resource "google_iam_workload_identity_pool_provider" "my_provider" {
240
240
`, context)
241
241
}
242
242
243
+ func TestAccIAMBetaWorkloadIdentityPoolProvider_x509(t *testing.T) {
244
+ t.Parallel()
245
+
246
+ context := map[string]interface{}{
247
+ "random_suffix": acctest.RandString(t, 10),
248
+ }
249
+
250
+ acctest.VcrTest(t, resource.TestCase{
251
+ PreCheck: func() { acctest.AccTestPreCheck(t) },
252
+ ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories(t),
253
+ CheckDestroy: testAccCheckIAMBetaWorkloadIdentityPoolProviderDestroyProducer(t),
254
+ Steps: []resource.TestStep{
255
+ {
256
+ Config: testAccIAMBetaWorkloadIdentityPoolProvider_x509_full(context),
257
+ },
258
+ {
259
+ ResourceName: "google_iam_workload_identity_pool_provider.example",
260
+ ImportState: true,
261
+ ImportStateVerify: true,
262
+ ImportStateVerifyIgnore: []string{"workload_identity_pool_id", "workload_identity_pool_provider_id"},
263
+ },
264
+ {
265
+ Config: testAccIAMBetaWorkloadIdentityPoolProvider_x509_update(context),
266
+ },
267
+ {
268
+ ResourceName: "google_iam_workload_identity_pool_provider.example",
269
+ ImportState: true,
270
+ ImportStateVerify: true,
271
+ ImportStateVerifyIgnore: []string{"workload_identity_pool_id", "workload_identity_pool_provider_id"},
272
+ },
273
+ },
274
+ })
275
+ }
276
+
277
+ func testAccIAMBetaWorkloadIdentityPoolProvider_x509_full(context map[string]interface{}) string {
278
+ return acctest.Nprintf(`
279
+ resource "google_iam_workload_identity_pool" "pool" {
280
+ workload_identity_pool_id = "tf-test-example-pool%{random_suffix}"
281
+ }
282
+
283
+ resource "google_iam_workload_identity_pool_provider" "example" {
284
+ workload_identity_pool_id = google_iam_workload_identity_pool.pool.workload_identity_pool_id
285
+ workload_identity_pool_provider_id = "tf-test-example-prvdr%{random_suffix}"
286
+ display_name = "Name of provider"
287
+ description = "X.509 identity pool provider for automated test"
288
+ disabled = true
289
+ attribute_mapping = {
290
+ "google.subject" = "assertion.subject.dn.cn"
291
+ }
292
+ x509 {
293
+ trust_store {
294
+ trust_anchors {
295
+ pem_certificate = file("test-fixtures/trust_anchor.pem")
296
+ }
297
+ intermediate_cas {
298
+ pem_certificate = file("test-fixtures/intermediate_ca.pem")
299
+ }
300
+ }
301
+ }
302
+ }
303
+ `, context)
304
+ }
305
+
306
+ func testAccIAMBetaWorkloadIdentityPoolProvider_x509_update(context map[string]interface{}) string {
307
+ return acctest.Nprintf(`
308
+ resource "google_iam_workload_identity_pool" "pool" {
309
+ workload_identity_pool_id = "tf-test-example-pool%{random_suffix}"
310
+ }
311
+
312
+ resource "google_iam_workload_identity_pool_provider" "example" {
313
+ workload_identity_pool_id = google_iam_workload_identity_pool.pool.workload_identity_pool_id
314
+ workload_identity_pool_provider_id = "tf-test-example-prvdr%{random_suffix}"
315
+ display_name = "Name of provider"
316
+ description = "X.509 identity pool provider for automated test"
317
+ disabled = true
318
+ attribute_mapping = {
319
+ "google.subject" = "assertion.subject.dn.cn"
320
+ }
321
+ x509 {
322
+ trust_store {
323
+ trust_anchors {
324
+ pem_certificate = file("test-fixtures/trust_anchor_updated.pem")
325
+ }
326
+ trust_anchors {
327
+ pem_certificate = file("test-fixtures/intermediate_ca.pem")
328
+ }
329
+ }
330
+ }
331
+ }
332
+ `, context)
333
+ }
334
+
243
335
<% end -%>
0 commit comments