-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New data source azurerm_ip_groups
#24540
Conversation
hey @KyMidd Thanks for this PR. Data Sources (and Resources) are only written to the state when they've got a Resource ID associated with them - as in this case the Data Source isn't calling Since this Data Source is listing the IP Groups available within the specified Resource Group, it'd make sense to use the Resource Group ID as the ID for this Data Source - which is available in subscriptionId := meta.(*clients.Client).Account.SubscriptionID
id := commonids.NewResourceGroupID(subscriptionId, resourceGroupName)
d.SetID(id.ID()) Then this Data Source should start being tracked in the state (and means that the tests will pass) - would you be able to take a look and see if that works for you? Thanks! |
Ooooooooohhhhhh! Thank you, that helps a ton! With that change, and a little cleanup of the tests, I'm able to compile the provider and this functionality works! 🥳
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this PR @KyMidd.
Overall this looks fine, I left a minor comment on the use of sets in data sources. Once that's been addressed we can run the tests and if they run through this should be good to go!
Also just as an aside, we currently have a mix of untyped and typed resources/data sources in the provider with the goal being to move all untyped resource/data source to typed ones in preparation for the next major release of the provider.
Since (I think?) this is your first contribution to the provider I'm not going to ask you to convert this into a typed data source, but for future contributions I'd recommend checking out our Contributor Docs on adding new types resources/data sources 🙂
Co-authored-by: stephybun <[email protected]>
It is my first contribution! 🎉
I'm a n00b at Go, so I don't fully understand but I'll read the docs over and educate myself. Hopefully I can come back here later once I understand and fix this up to be better compliant.
Done! Thanks so much for the info and suggested code blocks 😸 Ran the tests again, all passing after your suggested changes:
|
If I'm understanding this correctly, this new DS is only returning the names and resource IDs of IP groups in a given RG. This can already be accomplished using the data "azurerm_resources" "example" {
resource_group_name = "example-resources"
type = "Microsoft.Network/IpGroups"
} |
Oh, that's awesome! I didn't realize that existed. It doesn't appear to also offer name filtering, but that could for sure be done as a secondary action. I think it's still useful to have data lookups like this, because they're so easy to consume and use. Defer to you and the team if you'd prefer to not use these bespoke data lookups. :) FWIW, I've asked around with the teams I work with, and none were aware this data resource exists. Perhaps it could be better called out in documentation? I can look at that! |
I mocked that locally, and it's not nearly as easy to use the Here's an example of using this new resource: data "azurerm_ip_groups" "example" {
resource_group_name = "example-resources"
name = "substring"
}
output "names" {
value = data.azurerm_ip_groups.example.names
} And here's the identical functionality using the data "azurerm_resources" "example" {
resource_group_name = "example-resources"
type = "Microsoft.Network/IpGroups"
}
output "names" {
[for r in data.azurerm_resources.example.resources : r.name if can(regex("substring", r.name))]
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for making those changes @KyMidd! The linter is still failing but it seems to be error'ing on something outside of this project, so I'm going to ignore it. LGTM 🚀
This functionality has been released in v3.89.0 of the Terraform Provider. Please see the Terraform documentation on provider versioning or reach out if you need any assistance upgrading. For further feature requests or bug reports with this functionality, please create a new GitHub issue following the template. Thank you! |
<Actions> <action id="f410411e63aff4bb73a81c2aec1d373cf8a903e63b30dee2006b0030d8a94cc8"> <h3>Bump Terraform `azurerm` provider version</h3> <details id="1d9343c012f5434ac9fe8a98135bae3667b399259be16d9b14302ea3bd424a24"> <summary>Update Terraform lock file</summary> <p>changes detected:
	"hashicorp/azurerm" updated from "3.88.0" to "3.89.0" in file ".terraform.lock.hcl"</p> <details> <summary>3.89.0</summary> <pre>Changelog retrieved from:
	https://github.com/hashicorp/terraform-provider-azurerm/releases/tag/v3.89.0
FEATURES:

* New Data Source: `azurerm_data_factory_trigger_schedule` ([#24572](hashicorp/terraform-provider-azurerm#24572 New Data Source: `azurerm_data_factory_trigger_schedules` ([#24572](hashicorp/terraform-provider-azurerm#24572 New Data Source: `azurerm_ip_groups` ([#24540](hashicorp/terraform-provider-azurerm#24540 New Data Source: `azurerm_nginx_certificate` ([#24577](hashicorp/terraform-provider-azurerm#24577 New Resource: `azurerm_chaos_studio_target` ([#24580](hashicorp/terraform-provider-azurerm#24580 New Resource: `azurerm_elastic_san_volume_group` ([#24166](hashicorp/terraform-provider-azurerm#24166 New Resource: `azurerm_netapp_account_encryption` ([#23733](hashicorp/terraform-provider-azurerm#23733 New Resource: `azurerm_redhat_openshift_cluster` ([#24375](https://github.com/hashicorp/terraform-provider-azurerm/issues/24375))

ENHANCEMENTS:

* dependencies: updating to `v0.66.1` of `github.com/hashicorp/go-azure-helpers` ([#24561](hashicorp/terraform-provider-azurerm#24561 dependencies: updating to `v0.20240124.1115501` of `github.com/hashicorp/go-azure-sdk` ([#24619](hashicorp/terraform-provider-azurerm#24619 `bot`: updating to API Version `2021-05-01-preview` ([#24555](hashicorp/terraform-provider-azurerm#24555 `containerservice`: the SDK Clients now support logging ([#24564](hashicorp/terraform-provider-azurerm#24564 `cosmosdb`: updating to API Version `2023-04-15` ([#24541](hashicorp/terraform-provider-azurerm#24541 `loadtestservice`: updating to use the base layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` (and support logging) ([#24578](hashicorp/terraform-provider-azurerm#24578 `managedidentity`: updating to use the base layer from `hashicorp/go-azure-sdk` rather than `Azure/go-autorest` (and support logging) ([#24578](hashicorp/terraform-provider-azurerm#24578 `azurerm_api_management_api` - change the `id` format so specific `revision`s can be managed by Terraform ([#23031](hashicorp/terraform-provider-azurerm#23031 `azurerm_data_protection_backup_vault` - the `redundancy` propety can now be set to `ZoneRedundant` ([#24556](hashicorp/terraform-provider-azurerm#24556 `azurerm_data_factory_integration_runtime_azure_ssis` - support for the `credential_name` property ([#24458](hashicorp/terraform-provider-azurerm#24458 `azurerm_orchestrated_virtual_machine_scale_set` - support `2022-datacenter-azure-edition-hotpatch` and `2022-datacenter-azure-edition-hotpatch-smalldisk` hotpatching images ([#23500](hashicorp/terraform-provider-azurerm#23500 `azurerm_stream_analytics_job` - support for the `sku_name` property ([#24554](https://github.com/hashicorp/terraform-provider-azurerm/issues/24554))

BUG FIXES:

* Data Source: `azurerm_app_service` - parsing the API Response for `app_service_plan_id` case-insensitively ([#24626](hashicorp/terraform-provider-azurerm#24626 Data Source: `azurerm_function_app` - parsing the API Response for `app_service_plan_id` case-insensitively ([#24626](hashicorp/terraform-provider-azurerm#24626 `azurerm_app_configuration_key` - the value for the `value` property can now be removed/emptied ([#24582](https://github.com/hashicorp/terraform-provider-azurerm/issues/24582))

* `azurerm_app_service` - parsing the API Response for `app_service_plan_id` case-insensitively ([#24626](hashicorp/terraform-provider-azurerm#24626 `azurerm_app_service_plan` - fix casing in `serverFarms` due to ID update ([#24562](hashicorp/terraform-provider-azurerm#24562 `azurerm_app_service_slot` - parsing the API Response for `app_service_plan_id` case-insensitively ([#24626](hashicorp/terraform-provider-azurerm#24626 `azurerm_automation_schedule` - only one `monthly_occurence` block can now be specified ([#24614](hashicorp/terraform-provider-azurerm#24614 `azurerm_cognitive_deployment` - the `model.version` property is no longer required ([#24264](hashicorp/terraform-provider-azurerm#24264 `azurerm_container_app` - multiple `custom_scale_rule` can not be updated ([#24509](hashicorp/terraform-provider-azurerm#24509 `azurerm_container_registry_task_schedule_run_now` - prevent issue where the incorrect scheduled run in tracked if there have been multiple ([#24592](hashicorp/terraform-provider-azurerm#24592 `azurerm_function_app` - parsing the API Response for `app_service_plan_id` case-insensitively ([#24626](hashicorp/terraform-provider-azurerm#24626 `azurerm_function_app_slot` - parsing the API Response for `app_service_plan_id` case-insensitively ([#24626](hashicorp/terraform-provider-azurerm#24626 `azurerm_logic_app_standard` - now will parse the app service ID insensitively ([#24562](hashicorp/terraform-provider-azurerm#24562 `azurerm_logic_app_workflow` - the `workflow_parameters` will now correctly handle information specified by `$connections` ([#24141](hashicorp/terraform-provider-azurerm#24141 `azurerm_mssql_managed_instance_security_alert_policy` - can not update empty storage attributes ([#24553](hashicorp/terraform-provider-azurerm#24553 `azurerm_network_interface` - the `ip_configuration` properties are no longer added to a Load Balancer Backend if one of those `ip_configurations` is associated with a backend ([#24470](https://github.com/hashicorp/terraform-provider-azurerm/issues/24470))


</pre> </details> </details> <a href="https://infra.ci.jenkins.io/job/terraform-jobs/job/azure/job/main/1052/">Jenkins pipeline link</a> </action> </Actions> --- <table> <tr> <td width="77"> <img src="https://www.updatecli.io/images/updatecli.png" alt="Updatecli logo" width="50" height="50"> </td> <td> <p> Created automatically by <a href="https://www.updatecli.io/">Updatecli</a> </p> <details><summary>Options:</summary> <br /> <p>Most of Updatecli configuration is done via <a href="https://www.updatecli.io/docs/prologue/quick-start/">its manifest(s)</a>.</p> <ul> <li>If you close this pull request, Updatecli will automatically reopen it, the next time it runs.</li> <li>If you close this pull request and delete the base branch, Updatecli will automatically recreate it, erasing all previous commits made.</li> </ul> <p> Feel free to report any issues at <a href="https://github.com/updatecli/updatecli/issues">github.com/updatecli/updatecli</a>.<br /> If you find this tool useful, do not hesitate to star <a href="https://github.com/updatecli/updatecli/stargazers">our GitHub repository</a> as a sign of appreciation, and/or to tell us directly on our <a href="https://matrix.to/#/#Updatecli_community:gitter.im">chat</a>! </p> </details> </td> </tr> </table> Co-authored-by: Jenkins Infra Bot (updatecli) <[email protected]> Co-authored-by: Damien Duportal <[email protected]>
I'm going to lock this pull request because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active contributions. |
azurerm_ip_group
data source only permits fetching the info of one data source. This data intends to fetch the data from multiple IP Groups within a resource group by using thename
attribute as a substring match.Tests passing: