Skip to content
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_windows_virtual_machine #28333

Draft
wants to merge 19 commits into
base: main
Choose a base branch
from

Conversation

teowa
Copy link
Contributor

@teowa teowa commented Dec 18, 2024

Community Note

  • Please vote on this PR by adding a 👍 reaction to the original PR to help the community and maintainers prioritize for review
  • Please do not leave comments along the lines of "+1", "me too" or "any updates", they generate extra noise for PR followers and do not help prioritize for review

Description

reference:

PR Checklist

  • I have followed the guidelines in our Contributing Documentation.
  • I have checked to ensure there aren't other open Pull Requests for the same update/change.
  • I have checked if my changes close any open issues. If so please include appropriate closing keywords below.
  • I have updated/added Documentation as required written in a helpful and kind way to assist users that may be unfamiliar with the resource / data source.
  • I have used a meaningful PR title to help maintainers and other users understand this change and help prevent duplicate work.
    For example: “resource_name_here - description of change e.g. adding property new_property_name_here

Changes to existing Resource / Data Source

  • I have added an explanation of what my changes do and why I'd like you to include them (This may be covered by linking to an issue above, but may benefit from additional explanation).
  • I have written new tests for my resource or datasource changes & updated any relevent documentation.
  • I have successfully run tests with my changes locally. If not, please provide details on testing challenges that prevented you running the tests.
  • (For changes that include a state migration only). I have manually tested the migration path between relevant versions of the provider.

Testing

  • My submission includes Test coverage as described in the Contribution Guide and the tests pass. (if this is not possible for any reason, please include details of why you did or could not add test coverage)

The test depends on a pre-deployed Azure Stack HCI (now called Azure Local) cluster.
image
test log detail

Change Log

Below please provide what should go into the changelog (if anything) conforming to the Changelog Format documented here.

  • New Resource: azurerm_stack_hci_windows_virtual_machine

This is a (please select all that apply):

  • Bug Fix
  • New Feature (ie adding a service, resource, or data source)
  • Enhancement
  • Breaking Change

Related Issue(s)

Fixes #0000

Note

If this PR changes meaningfully during the course of review please update the title and description as required.

@teowa teowa marked this pull request as draft December 18, 2024 08:28
Copy link
Contributor

@ms-zhenhua ms-zhenhua left a 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 👍

@@ -193,6 +194,11 @@ func (r StackHCIMarketplaceGalleryImageResource) Create() sdk.ResourceFunc {
return fmt.Errorf("performing create %s: %+v", id, err)
}

// https://github.com/Azure/azure-rest-api-specs/issues/31876
if err := resourceMarketplaceGalleryImageWaitForCreated(ctx, *client, id); err != nil {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change seems not related with the new resource. It would be better to put it into a separate PR.

Copy link
Contributor Author

@teowa teowa Dec 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed, this is added to another PR #28394

@@ -181,6 +182,11 @@ func (r StackHCINetworkInterfaceResource) Create() sdk.ResourceFunc {
return fmt.Errorf("performing create %s: %+v", id, err)
}

// https://github.com/Azure/azure-rest-api-specs/issues/31876
if err := resourceNetworkInterfaceWaitForCreated(ctx, *client, id); err != nil {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as above

Copy link
Contributor Author

@teowa teowa Dec 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed, this is added to another PR #28394

@@ -209,6 +210,11 @@ func (r StackHCIVirtualHardDiskResource) Create() sdk.ResourceFunc {
return fmt.Errorf("performing create %s: %+v", id, err)
}

// https://github.com/Azure/azure-rest-api-specs/issues/31876
if err := resourceVirtualHardDiskWaitForCreated(ctx, *client, id); err != nil {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as above

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed, this is added to another PR #28394

@@ -75,6 +76,8 @@ The following arguments are supported:

* `storage_path_id` - (Optional) The ID of the Azure Stack HCI Storage Path used for this Marketplace Gallery Image. Changing this forces a new Azure Stack HCI Virtual Hard Disk to be created.

-> **Note:** If `storage_path_id` is not specified, it will be assigned by the server. If you experience a diff you may need to add this to `ignore_changes`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change seems not related with the new resource. It would be better to put it into a separate PR.

Copy link
Contributor Author

@teowa teowa Dec 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed, this is added to another PR #28394

@@ -94,6 +94,8 @@ An `ip_configuration` block supports the following:

* `private_ip_address` - (Optional) The IPv4 address of the IP configuration. Changing this forces a new resource to be created.

-> **Note:** If `private_ip_address` is not specified, it will be assigned by the server. If you experience a diff you may need to add this to `ignore_changes`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above

Copy link
Contributor Author

@teowa teowa Dec 30, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed, this is added to another PR #28394


arcMachineId := machines.NewMachineID(id.SubscriptionId, id.ResourceGroup, id.MachineName)
scopeId := commonids.NewScopeID(arcMachineId.ID())
resp, err := clusterClient.Get(ctx, scopeId)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
resp, err := clusterClient.Get(ctx, scopeId)
resp, err := client.AzureStackHCI.VirtualMachineInstances.Get(ctx, scopeId)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated

data := acceptance.BuildTestData(t, "azurerm_stack_hci_windows_virtual_machine", "test")
r := StackHCIWindowsVirtualMachineResource{}

data.ResourceSequentialTest(t, r, []acceptance.TestStep{
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

consider using basic->complete->update->basic to test Add/Update/Remove properties

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the complete test case contains extra forceNew properties thus cannot be used to test update

})
}

func testAccStackHCIWindowsVirtualMachine_complete(t *testing.T) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seems security_type and storage_profile.os_disk_id are not test

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

security_type can only set with certain hardware, and os_disk_id is not supported for now, I have removed it.


* `storage_profile` - (Required) A `storage_profile` block as defined below.

---
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should not use --- here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is generated by internal/tools/website-scaffold/main.go


* `minimum_memory_mb` - (Required) The minimum memory in Megabytes. Changing this forces a new Azure Stack HCI Windows Virtual Machine to be created.

* `target_memory_buffer` - (Required) The extra memory that should be reserved for a virtual machine instance at runtime. Possible value can be in the range of `5` to `2000`. Changing this forces a new Azure Stack HCI Windows Virtual Machine to be created.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what's the unit?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated, should be percentage

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants