-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
adding data source for identity pool provider (#4181)
Co-authored-by: Scott Suarez <[email protected]>
- Loading branch information
1 parent
816763a
commit 7c84475
Showing
5 changed files
with
137 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
33 changes: 33 additions & 0 deletions
33
..._party/terraform/data_sources/data_source_iam_beta_workload_identity_pool_provider.go.erb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
<% autogen_exception -%> | ||
package google | ||
|
||
<% unless version == 'ga' -%> | ||
import ( | ||
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" | ||
) | ||
|
||
func dataSourceIAMBetaWorkloadIdentityPoolProvider() *schema.Resource { | ||
|
||
dsSchema := datasourceSchemaFromResourceSchema(resourceIAMBetaWorkloadIdentityPoolProvider().Schema) | ||
addRequiredFieldsToSchema(dsSchema, "workload_identity_pool_id") | ||
addRequiredFieldsToSchema(dsSchema, "workload_identity_pool_provider_id") | ||
addOptionalFieldsToSchema(dsSchema, "project") | ||
|
||
return &schema.Resource{ | ||
Read: dataSourceIAMBetaWorkloadIdentityPoolProviderRead, | ||
Schema: dsSchema, | ||
} | ||
} | ||
|
||
func dataSourceIAMBetaWorkloadIdentityPoolProviderRead(d *schema.ResourceData, meta interface{}) error { | ||
config := meta.(*Config) | ||
|
||
id, err := replaceVars(d, config, "projects/{{project}}/locations/global/workloadIdentityPools/{{workload_identity_pool_id}}/providers/{{workload_identity_pool_provider_id}}") | ||
if err != nil { | ||
return fmt.Errorf("Error constructing id: %s", err) | ||
} | ||
d.SetId(id) | ||
return resourceIAMBetaWorkloadIdentityPoolProviderRead(d, meta) | ||
|
||
} | ||
<% end -%> |
61 changes: 61 additions & 0 deletions
61
third_party/terraform/tests/data_source_iam_beta_workload_identity_pool_provider_test.go.erb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
<% autogen_exception -%> | ||
package google | ||
|
||
<% unless version == 'ga' -%> | ||
import ( | ||
"testing" | ||
|
||
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" | ||
) | ||
|
||
func TestAccDataSourceIAMBetaWorkloadIdentityPoolProvider_basic(t *testing.T) { | ||
t.Parallel() | ||
|
||
context := map[string]interface{}{ | ||
"random_suffix": randString(t, 10), | ||
} | ||
|
||
vcrTest(t, resource.TestCase{ | ||
PreCheck: func() { testAccPreCheck(t) }, | ||
Providers: testAccProviders, | ||
CheckDestroy: testAccCheckIAMBetaWorkloadIdentityPoolProviderDestroyProducer(t), | ||
Steps: []resource.TestStep{ | ||
{ | ||
Config: testAccDataSourceIAMBetaWorkloadIdentityPoolProviderBasic(context), | ||
Check: resource.ComposeTestCheckFunc( | ||
checkDataSourceStateMatchesResourceState("data.google_iam_workload_identity_pool_provider.foo", "google_iam_workload_identity_pool_provider.bar"), | ||
), | ||
}, | ||
}, | ||
}) | ||
} | ||
|
||
func testAccDataSourceIAMBetaWorkloadIdentityPoolProviderBasic(context map[string]interface{}) string { | ||
return Nprintf(` | ||
resource "google_iam_workload_identity_pool" "pool" { | ||
workload_identity_pool_id = "pool-%{random_suffix}" | ||
} | ||
|
||
resource "google_iam_workload_identity_pool_provider" "bar" { | ||
workload_identity_pool_id = google_iam_workload_identity_pool.pool.workload_identity_pool_id | ||
workload_identity_pool_provider_id = "bar-provider-%{random_suffix}" | ||
display_name = "Name of provider" | ||
description = "OIDC identity pool provider for automated test" | ||
disabled = true | ||
attribute_condition = "\"e968c2ef-047c-498d-8d79-16ca1b61e77e\" in assertion.groups" | ||
attribute_mapping = { | ||
"google.subject" = "assertion.sub" | ||
} | ||
oidc { | ||
allowed_audiences = ["https://example.com/gcp-oidc-federation"] | ||
issuer_uri = "https://sts.windows.net/azure-tenant-id" | ||
} | ||
} | ||
|
||
data "google_iam_workload_identity_pool_provider" "foo" { | ||
workload_identity_pool_id = google_iam_workload_identity_pool.pool.workload_identity_pool_id | ||
workload_identity_pool_provider_id = google_iam_workload_identity_pool_provider.bar.workload_identity_pool_provider_id | ||
} | ||
`, context) | ||
} | ||
<% end -%> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
41 changes: 41 additions & 0 deletions
41
third_party/terraform/website/docs/d/iam_workload_identity_pool_provider.markdown
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
--- | ||
subcategory: "Cloud IAM" | ||
layout: "google" | ||
page_title: "Google: google_iam_workload_identity_pool_provider" | ||
sidebar_current: "docs-google-datasource-iam-workload-identity-pool-provider" | ||
description: |- | ||
Get a IAM workload identity pool provider from Google Cloud | ||
--- | ||
|
||
# google\_iam\_workload_\identity\_pool\_provider | ||
|
||
Get a IAM workload identity provider from Google Cloud by its id. | ||
|
||
~> **Warning:** This resource is in beta, and should be used with the terraform-provider-google-beta provider. | ||
See [Provider Versions](https://terraform.io/docs/providers/google/guides/provider_versions.html) for more details on beta resources. | ||
|
||
## Example Usage | ||
|
||
```tf | ||
data "google_iam_workload_identity_pool_provider" "foo" { | ||
workload_identity_pool_id = "foo-pool" | ||
workload_identity_pool_provider_id = "bar-provider" | ||
} | ||
``` | ||
|
||
## Argument Reference | ||
|
||
The following arguments are supported: | ||
|
||
* `workload_identity_pool_id` - (Required) The id of the pool which is the | ||
final component of the pool resource name. | ||
* `workload_identity_pool_provider_id` - (Required) The id of the provider which is the | ||
final component of the resource name. | ||
|
||
- - - | ||
|
||
* `project` - (Optional) The project in which the resource belongs. If it | ||
is not provided, the provider project is used. | ||
|
||
## Attributes Reference | ||
See [google_iam_workload_identity_pool_provider](https://www.terraform.io/docs/providers/google/r/iam_workload_identity_pool_provider.html) resource for details of all the available attributes. |