-
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 resource azurerm_stack_hci_deployment_setting
#25646
Conversation
cfbabcf
to
8538e65
Compare
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.
Hi @teowa, Thanks for this PR - I've taken a look through and left some comments inline. If we can fix those up, this should be good to go 👍
internal/services/azurestackhci/stack_hci_deployment_setting_resource.go
Outdated
Show resolved
Hide resolved
internal/services/azurestackhci/stack_hci_deployment_setting_resource.go
Outdated
Show resolved
Hide resolved
internal/services/azurestackhci/stack_hci_deployment_setting_resource.go
Outdated
Show resolved
Hide resolved
internal/services/azurestackhci/stack_hci_deployment_setting_resource.go
Show resolved
Hide resolved
}, | ||
}, | ||
|
||
"override_adapter_property_enabled": { |
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.
please provide the default value
"override_adapter_property_enabled": { | |
"adapter_property_overriding_enabled": { |
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.
should we keep it as override_adapter_property_enabled
, so it is consistent with above override_adapter_property
block?
default: false
added
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.
changed to adapter_property_override_enabled
|
||
* `infrastructure_network` - (Required) One or more `infrastructure_network` blocks as defined above. Changing this forces a new Stack HCI Deployment Setting to be created. | ||
|
||
* `naming_prefix` - (Required) Specifies the naming prefix to deploy cluster. It must be 1-8 characters long and contain only letters, numbers and hyphens Changing this forces a new Stack HCI Deployment Setting to be created. |
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.
is it the name prefix of the cluster or something else?
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.
this is not the cluster naming prefix, it is used in naming somthing produced during deployment.
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.
changed to name_prefix
b3e0542
to
1f59032
Compare
@ms-zhenhua is this pr ready for review or still being worked on and is a draft? |
…m into stackhci_deployment_setting
…m into stackhci_deployment_setting
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 @teowa - I've added a few minor comments below for error messages / documentation. I believe it's otherwise looking OK. If you can re-post the test results including these and previous changes since the PR was opened, I think we should be OK to merge 👍
|
||
applianceClient := metadata.Client.ArcResourceBridge.AppliancesClient | ||
if err := applianceClient.DeleteThenPoll(ctx, applianceId); err != nil { | ||
return fmt.Errorf("deleting %s: %+v", applianceId, err) |
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.
Can we add some contextual information to the wrapped text here, since the user isn't managing this resource directly, it may be ver confusing to have this message presented for a resource they may be unaware of?
} | ||
|
||
if err := storageContainerClient.DeleteThenPoll(ctx, *storageContainerId); err != nil { | ||
return err |
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.
Can we have this error wrapped, as above with context for the user to understand what is happening?
|
||
# azurerm_stack_hci_deployment_setting | ||
|
||
Manages a Stack HCI Deployment Setting. |
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.
Can we also get a note added about the additional resources created on behalf of the user in their resource group to help ensure they are aware of their existence and importance, and that Terraform will attempt to remove these on deletion or recreation of this resource?
internal/services/azurestackhci/stack_hci_deployment_setting_resource.go
Show resolved
Hide resolved
internal/services/azurestackhci/stack_hci_deployment_setting_resource.go
Show resolved
Hide resolved
MinItems: 1, | ||
Elem: &pluginsdk.Resource{ | ||
Schema: map[string]*pluginsdk.Schema{ | ||
"adou_path": { |
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.
adou? what does this mean? google doesn't come up with anything
please make the property name more clear if it is an acronym,
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.
changed to active_directory_organizational_unit_path
Type: pluginsdk.TypeString, | ||
Required: true, | ||
ForceNew: true, | ||
ValidateFunc: validation.StringIsNotEmpty, |
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.
can we validate this? should it be a uri?
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.
validation added, it's a domain name like core.windows.net
Type: pluginsdk.TypeString, | ||
Required: true, | ||
ForceNew: true, | ||
ValidateFunc: validation.StringIsNotEmpty, |
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.
and here
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.
This should be storage account name, validation added.
Type: pluginsdk.TypeString, | ||
Required: true, | ||
ForceNew: true, | ||
ValidateFunc: validation.StringIsNotEmpty, |
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.
can we validate this is a FQDN?
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.
validation added, it's a domain name like jumpstart.local
MaxItems: 1, | ||
Elem: &pluginsdk.Resource{ | ||
Schema: map[string]*pluginsdk.Schema{ | ||
"jumbo_packet": { |
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.
should this be an int? and validated?
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.
It's plain string format and related to specific OEM setting. And by test, empty string should be sent if user does not specify the property. https://github.com/Azure/azure-rest-api-specs/blob/c41b76298becce0a8cfac4e682773d5d0c78dcb2/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/stable/2024-01-01/deploymentSettings.json#L784-L786
MaxItems: 1, | ||
Elem: &pluginsdk.Resource{ | ||
Schema: map[string]*pluginsdk.Schema{ | ||
"bandwidth_percentage_smb": { |
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.
this is a percentage so why is it a string?
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.
It's plain string format and related to specific OEM setting. And by test, empty string should be sent if user does not specify the property. https://github.com/Azure/azure-rest-api-specs/blob/c41b76298becce0a8cfac4e682773d5d0c78dcb2/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/stable/2024-01-01/deploymentSettings.json#L784-L786
Elem: &pluginsdk.Resource{ | ||
Schema: map[string]*pluginsdk.Schema{ | ||
"enable_iov": { | ||
Type: pluginsdk.TypeString, |
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.
this is an "enable" so true or false but is a string? shoiuld it not be a boolean ?
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.
It's plain string format and related to specific OEM setting. And by test, empty string should be sent if user does not specify the property. https://github.com/Azure/azure-rest-api-specs/blob/c41b76298becce0a8cfac4e682773d5d0c78dcb2/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/stable/2024-01-01/deploymentSettings.json#L784-L786
// the resource may exist even validation error | ||
metadata.SetID(id) |
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.
i'm not sure what this means, we should not be setting the ID until after the resource is created?
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.
updated, SetID is moved after resource is created.
…m into stackhci_deployment_setting
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.
LGTM 🎩
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. |
Community Note
Description
Azure Doc: https://learn.microsoft.com/en-us/azure-stack/hci/deploy/deployment-azure-resource-manager-template
REST API: https://github.com/Azure/azure-rest-api-specs/blob/c4e661cdf92c8f579574008d0cd11874cc303da0/specification/azurestackhci/resource-manager/Microsoft.AzureStackHCI/stable/2024-01-01/deploymentSettings.json
PR Checklist
For example: “
resource_name_here
- description of change e.g. adding propertynew_property_name_here
”Changes to existing Resource / Data Source
Testing
The test can only run on Windows Administrator PowerShell, and can only run based on a VM image customized to simulate Azure VM as a HCI host, since real Azure Stack HCI needs hardware to deploy.
test env:
My local test:
Change Log
Below please provide what should go into the changelog (if anything) conforming to the Changelog Format documented here.
azurerm_stack_hci_deployment_setting
[GH-00000]This is a (please select all that apply):
Related Issue(s)
Fixes #0000
Note
If this PR changes meaningfully during the course of review please update the title and description as required.