IotOperation resource availability#30915
Conversation
|
Hey team, this PR follows the guideline with exception of Create and update to be separate function .The Azure SDK for this resource does not currently support PATCH or partial updates as a result, the Update method sends the full payload, just like Create. The code is structured to allow partial updates in the future if/when the SDK adds PATCH support. |
wuxu92
left a comment
There was a problem hiding this comment.
Hi Thanks for raising this PR, I left some comments, could you take a look and address them and I'll take another look.
| required_providers { | ||
| azurerm = { | ||
| source = "hashicorp/azurerm" | ||
| version = "~> 3.0" |
There was a problem hiding this comment.
remove the version constraint here or version = "~> 4.xx"?
| version = "~> 3.0" |
| } | ||
| provider "azurerm" { | ||
| features {} | ||
| subscription_id = "d4ccd08b-0809-446d-a8b7-7af8a90109cd" |
There was a problem hiding this comment.
use a placeholder or variable, or just omit subscription_id field.
| subscription_id = "d4ccd08b-0809-446d-a8b7-7af8a90109cd" |
also applies to all other examples
| required_providers { | ||
| azurerm = { | ||
| source = "hashicorp/azurerm" | ||
| version = "~> 3.0" |
There was a problem hiding this comment.
| version = "~> 3.0" |
also applies to all other examples
| instance_name = "REPLACE_WITH_INSTANCE_NAME" | ||
| broker_name = "REPLACE_WITH_BROKER_NAME" |
There was a problem hiding this comment.
is there a reason we use REPLACE_WITH_XXX here? can we use a environment variable, or add a comment here about hot to setup them? the same question applies to the complete config
| ExtendedLocationName *string `tfschema:"extended_location_name"` | ||
| ExtendedLocationType *string `tfschema:"extended_location_type"` | ||
| ServiceName *string `tfschema:"service_name"` | ||
| ServiceType *string `tfschema:"service_type"` | ||
| Ports []BrokerListenerPortModel `tfschema:"ports"` | ||
| ProvisioningState *string `tfschema:"provisioning_state"` |
There was a problem hiding this comment.
The resource model does not use pointer types; it exclusively utilizes literal types. this also applies to all other resource model definitions.
There was a problem hiding this comment.
Looked and tested the pointer issues reviewing the SDK, most of the optional parameters from the API request are pointers.
There was a problem hiding this comment.
The structs defined here is for the Terraform resource, the guideline for these structs are not pointers. so we'd change it to non-pointer type to align with the provider.
| @@ -62,6 +62,7 @@ Healthcare | |||
| Hybrid Compute | |||
| IoT Central | |||
| IoT Hub | |||
| IoT Operations | |||
There was a problem hiding this comment.
it seems all the documents for resources are missing, could you please add documents for them
wuxu92
left a comment
There was a problem hiding this comment.
could you also run the Acc Tests and share the result in the PR?
| "github.com/hashicorp/go-azure-sdk/resource-manager/iotoperations/2024-11-01/dataflow" | ||
| "github.com/hashicorp/go-azure-sdk/resource-manager/iotoperations/2024-11-01/dataflowendpoint" | ||
| "github.com/hashicorp/go-azure-sdk/resource-manager/iotoperations/2024-11-01/dataflowprofile" | ||
| "github.com/hashicorp/go-azure-sdk/resource-manager/iotoperations/2024-11-01/instance" |
There was a problem hiding this comment.
the latest stable API version is 2025-10-01, can you please upgrade to the latest API version?
|
closing due to lack of response |
Community Note
Description
This addition introduces comprehensive support for Azure IoT Operations, Microsoft's unified industrial IoT platform, to the AzureRM Terraform provider. The implementation includes a complete suite of resources that enable users to deploy and manage edge-to-cloud IoT solutions through Infrastructure as Code. The core foundation begins with the azurerm_iotoperations_instance resource, which serves as the container for all IoT Operations components and requires deployment to Arc-enabled Kubernetes environments via custom locations. Built upon this foundation is the azurerm_iotoperations_broker resource, providing a scalable MQTT message broker with configurable cardinality for both backend (partitions, redundancy, workers) and frontend (replicas, workers) components. Network connectivity is handled through azurerm_iotoperations_broker_listener resources, which support multiple protocols (MQTT, WebSockets, HTTP) with enterprise-grade security features including TLS encryption, cert-manager integration for automated certificate lifecycle management, and configurable authentication and authorization policies. The platform's data processing capabilities are enabled through azurerm_iotoperations_dataflow resources that define transformation and routing workflows, supported by azurerm_iotoperations_dataflow_profile resources for performance tuning and azurerm_iotoperations_dataflow_endpoint resources for connecting to external systems like Azure Data Explorer, Storage accounts, and Event Hubs. Security and access control are managed through dedicated azurerm_iotoperations_broker_authentication and azurerm_iotoperations_broker_authorization resources, providing fine-grained control over device and application access to the MQTT broker. This comprehensive resource set enables organizations to implement complete industrial IoT scenarios with edge computing capabilities, real-time data processing, secure device communication, and seamless integration with Azure cloud services, all managed declaratively through Terraform's infrastructure-as-code approach.
PR Checklist
For example: “
resource_name_here- description of change e.g. adding propertynew_property_name_here”Changes to existing Resource / Data Source
Testing
Change Log
Below please provide what should go into the changelog (if anything) conforming to the Changelog Format documented here.
azurerm_resource- support for thething1property [GH-00000]This is a (please select all that apply):
Related Issue(s)
Fixes #0000
AI Assistance Disclosure
Rollback Plan
If a change needs to be reverted, we will publish an updated version of the provider.
Changes to Security Controls
Are there any changes to security controls (access controls, encryption, logging) in this pull request? If so, explain.
Note
If this PR changes meaningfully during the course of review please update the title and description as required.