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

az ppg create and az ppg update commands to support User Intent #22466

Closed
lakmeedee opened this issue May 16, 2022 · 10 comments · Fixed by #23167
Closed

az ppg create and az ppg update commands to support User Intent #22466

lakmeedee opened this issue May 16, 2022 · 10 comments · Fixed by #23167

Comments

@lakmeedee
Copy link

lakmeedee commented May 16, 2022

Related command
Optional parameters and values need to be added to the following commands to support user intent:

  • az ppg create
  • az ppg update

Is your feature request related to a problem? Please describe.
No. This is a new feature request.

Describe the solution you'd like
Intent
Intent is an optional parameter which you can provide while creating a proximity placement group. It can also be added or modified while updating the PPG after deallocating all VMs in the proximity placement group.

The intent allows you to provide one or more VM Sizes that you require to be deployed as part of the proximity placement group(across single VMs, Availability Sets and VM Scale Sets).

Availability zone
In addition to the intent, an optional availability zone can be provided using zones parameter in case the proximity placement group must be created within a specific zone. Please note:

The availability zone can be provided only during proximity placement group creation and cannot be modified subsequently; unlike the intent, it cannot be updated even when the proximity placement group has all VM resources deallocated

The availability zone can be provided only when an intent is provided

Only one zone can be indicated as part of the availability zone

Please note that specifying a zone does not allow the proximity placement group to span the entire zone. It only helps select a data center within the specified zone rather than anywhere in the region.

The PPG create and update API with zones and intent parameters will look like the following:

API Version
API version must be 2021-11-01 or higher for using proximity placement group Intent

{
"apiVersion": "2021-11-01",
"type": "Microsoft.Compute/proximityPlacementGroups",
"name": "[parameters('ppgName')]",
"location": "[resourceGroup().location]",
“zones”: [“2”],
"properties": {
    "proximityPlacementGroupType": "Standard",
    “intent”: {
 "vmSizes": ["Standard_E64s_v4", "Standard_M416ms_v2"]
}
}

Example of az pgg create command with user intent:
az ppg create --name MyProximityPlacementGroup --resource-group MyResourceGroup --location eastus2 --type 'Standard' --zone 1 --intentvmsizes 'Standard_E64s_v4, Standard_M416ms_v2'

New Parameter Description/Value
zone Availability Zone where the PPG should be created - accepted values 1,2,3
intentvmsizes One or more VM Sizes that you require to be deployed as part of the PPG (across single VMs, Availability Sets and VM Scale Sets) - it is an array of strings

Note that zone can only be provided when intentvmsizes is provided; otherwise error should be thrown

Example of az ppg update with user intent:
az ppg create --name MyProximityPlacementGroup --resource-group MyResourceGroup --intentvmsizes 'Standard_E64s_v4, Standard_M416ms_v2'

New Parameter Description/Value
intentvmsizes One or more VM Sizes that you require to be deployed as part of the PPG (across single VMs, Availability Sets and VM Scale Sets) - it is an array of strings

Note that zone is NOT a parameter to be added in the update command as it can be used only during PPG creation time

Describe alternatives you've considered
It is a new feature request - so no new alternatives

Additional context

Role Contact
Developer aspand@microsoft.com
PM dejv@microsoft.com
Reviewer abver@microsoft.com

Link to the OpenAPI (swagger) spec: Azure/azure-rest-api-specs#18159

@yonzhan yonzhan added the CXP Attention This issue is handled by CXP team. label May 16, 2022
@ghost
Copy link

ghost commented May 16, 2022

Thank you for your feedback. This has been routed to the support team for assistance.

@jsntcy jsntcy added Compute - PPG az ppg feature-request and removed CXP Attention This issue is handled by CXP team. labels May 17, 2022
@jsntcy jsntcy added this to the Backlog milestone May 17, 2022
@zhoxing-ms
Copy link
Contributor

@lakmeedee Hi, since our work in this sprint has been fully arranged, we don't have enough time to support more requirements. Can this feature request be postponed to the release of the next sprint (08-02)?

@lakmeedee
Copy link
Author

Sure. You can target this for 08-02 release

@lakmeedee
Copy link
Author

lakmeedee commented May 23, 2022

@zhoxing-ms However can we close on any queries or concerns you have on the changes by this month please?

@zhoxing-ms
Copy link
Contributor

@lakmeedee In fact, CLI depends on Python SDK, could you guarantee that Swagger and Python SDK are ready in advance?

@lakmeedee
Copy link
Author

Link to the OpenAPI (swagger) spec: Azure/azure-rest-api-specs#18159
@aspand to help with PythonSDK

@yanzhudd
Copy link
Contributor

yanzhudd commented Jul 7, 2022

Hello @lakmeedee , We note that in addition to the changes made to swagger in version 2021-11-01, changes were also made in version 2022-03-01 (Azure/azure-rest-api-specs#18159). Can we use the 2022-03-01 version of swagger directly to develop this feature?

@lakmeedee
Copy link
Author

Yes. Please use the same.

@yanzhudd
Copy link
Contributor

Hello @lakmeedee, since we usually use spaces to split arrays, it is better to change the commands to the following format.

Example of az pgg create command with user intent:
az ppg create --name MyProximityPlacementGroup --resource-group MyResourceGroup --location eastus2 --type Standard --zone 1 --intentvmsizes Standard_E64s_v4 Standard_M416ms_v2

Example of az ppg update with user intent:
az ppg update --name MyProximityPlacementGroup --resource-group MyResourceGroup --intentvmsizes Standard_E64s_v4 Standard_M416ms_v2

@lakmeedee
Copy link
Author

lakmeedee commented Jul 11, 2022

If the 'intentvmsizes' parameter value in CLI translates to an array of strings while creating the ARM template, I'm good with it
@aspand Can you also comment on this?

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