salt-extensions / saltext-azurerm Goto Github PK
View Code? Open in Web Editor NEWSalt Extension Modules for Azure Resource Manager
License: Apache License 2.0
Salt Extension Modules for Azure Resource Manager
License: Apache License 2.0
Copied from Salt issue 56151 opened by @tkykm
saltstack/salt#56151 (comment)
Description of Issue
This is feature request.
It would be great that we can auto generate password for windows In salt-cloud with azurearm like a AWS.
for example, the idea is to set key to profile and then salt-cloud generate a strong password and ecrypt it with the key, finally store it to grain.
Thank you in advance!
Setup
(Please provide relevant configs and/or SLS files (Be sure to remove sensitive info).)
salt 2019.2.2 or more
Description
A clear and concise description of what the bug is.
Creating an instance with salt-cloud -p my-custom-profile myvm001
yields and InvalidParameter error, as shown below. The error states an empty value for the VM size despite the size
being present in the Cloud Profile.
Have not ruled out a Configuration issue.
Setup
(Please provide relevant configs and/or SLS files (be sure to remove sensitive info. There is no general set-up of Salt.)
Please be as specific as possible and give set-up details.
/etc/salt/cloud.providers.d/my-provider.conf
my-azurerm-provider:
client_id: <redacted>
driver: azurerm
location: eastus
minion:
master:
- <redacted>
resource_group: <redacted>
secret: <redacted>
subscription_id: <redacted>
tenant: <redacted>
/etc/salt/cloud.profiles.d/my-profile.conf
my-azurerm-profile:
allocate_public_ip: false
image: <redacted>
location: eastus
network: <redacted>
os_disk_size_gb: 30
provider: <redacted>
size: Standard_D8as_v5
ssh_password: <redacted>
ssh_username: <redacted>
subnet: <redacted>
userdata: <redacted>
win_installer: false
Steps to Reproduce the behavior
(Include debug logs if possible and relevant)
salt-cloud -p my-azurerm-profile myvm001
yields the following error:
[ERROR ] An Azure Resource Manager Compute ResourceNotFoundError has occurred: (InvalidParameter) The value provided for the VM size is not valid. The valid sizes in the current region are:
Standard_L8as_v3,Standard_L16as_v3,Standard_L32as_v3,Standard_L48as_v3,Standard_L64as_v3,Standard_L80as_v3,Standard_D2a_v4,Standard_D4a_v4,Standard_D8a_v4,Standard_D16a_v4,Standard_D32a_v4,Standard_D48a_v4,Standard_D64a_v4,Standard_D96a_v4,Standard_D2as_v4,Standard_D4as_v4,Standard_D8as_v4,Standard_D16as_v4,Standard_D32as_v4,Standard_D48as_v4,Standard_D64as_v4,Standard_D96as_v4,Standard_E2a_v4,Standard_E4a_v4,Standard_E8a_v4,Standard_E16a_v4,Standard_E20a_v4,Standard_E32a_v4,Standard_E48a_v4,Standard_E64a_v4,Standard_E96a_v4,Standard_E2as_v4,Standard_E4-2as_v4,Standard_E4as_v4,Standard_E8-2as_v4,Standard_E8-4as_v4,Standard_E8as_v4,Standard_E16-4as_v4,Standard_E16-8as_v4,Standard_E16as_v4,Standard_E20as_v4,Standard_E32-8as_v4,Standard_E32-16as_v4,Standard_E32as_v4,Standard_E48as_v4,Standard_E64-16as_v4,Standard_E64-32as_v4,Standard_E64as_v4,Standard_E96-24as_v4,Standard_E96-48as_v4,Standard_E96as_v4,Standard_D2as_v5,Standard_D4as_v5,Standard_D8as_v5,Standard_D16as_v5,Standard_D32as_v5,Standard_D48as_v5,Standard_D64as_v5,Standard_D96as_v5,Standard_E2as_v5,Standard_E4-2as_v5,Standard_E4as_v5,Standard_E8-2as_v5,Standard_E8-4as_v5,Standard_E8as_v5,Standard_E16-4as_v5,Standard_E16-8as_v5,Standard_E16as_v5,Standard_E20as_v5,Standard_E32-8as_v5,Standard_E32-16as_v5,Standard_E32as_v5,Standard_E48as_v5,Standard_E64-16as_v5,Standard_E64-32as_v5,Standard_E64as_v5,Standard_E96-24as_v5,Standard_E96-48as_v5,Standard_E96as_v5,Standard_D2ads_v5,Standard_D4ads_v5,Standard_D8ads_v5,Standard_D16ads_v5,Standard_D32ads_v5,Standard_D48ads_v5,Standard_D64ads_v5,Standard_D96ads_v5,Standard_E2ads_v5,Standard_E4-2ads_v5,Standard_E4ads_v5,Standard_E8-2ads_v5,Standard_E8-4ads_v5,Standard_E8ads_v5,Standard_E16-4ads_v5,Standard_E16-8ads_v5,Standard_E16ads_v5,Standard_E20ads_v5,Standard_E32-8ads_v5,Standard_E32-16ads_v5,Standard_E32ads_v5,Standard_E48ads_v5,Standard_E64-16ads_v5,Standard_E64-32ads_v5,Standard_E64ads_v5,Standard_E96-24ads_v5,Standard_E96-48ads_v5,Standard_E96ads_v5,Standard_B1ls,Standard_B1ms,Standard_B1s,Standard_B2ms,Standard_B2s,Standard_B4ms,Standard_B8ms,Standard_B12ms,Standard_B16ms,Standard_B20ms,Standard_D1_v2,Standard_D2_v2,Standard_D3_v2,Standard_D4_v2,Standard_D5_v2,Standard_D11_v2,Standard_D12_v2,Standard_D13_v2,Standard_D14_v2,Standard_D15_v2,Standard_D2_v2_Promo,Standard_D3_v2_Promo,Standard_D4_v2_Promo,Standard_D5_v2_Promo,Standard_D11_v2_Promo,Standard_D12_v2_Promo,Standard_D13_v2_Promo,Standard_D14_v2_Promo,Standard_DS2_v2_Promo,Standard_DS3_v2_Promo,Standard_DS4_v2_Promo,Standard_DS5_v2_Promo,Standard_DS11_v2_Promo,Standard_DS12_v2_Promo,Standard_DS13_v2_Promo,Standard_DS14_v2_Promo,Standard_F1,Standard_F2,Standard_F4,Standard_F8,Standard_F16,Standard_A1_v2,Standard_A2m_v2,Standard_A2_v2,Standard_A4m_v2,Standard_A4_v2,Standard_A8m_v2,Standard_A8_v2,Standard_D2_v3,Standard_D4_v3,Standard_D8_v3,Standard_D16_v3,Standard_D32_v3,Standard_D48_v3,Standard_D64_v3,Standard_E2_v3,Standard_E4_v3,Standard_E8_v3,Standard_E16_v3,Standard_E20_v3,Standard_E32_v3,Standard_E48_v3,Standard_E64_v3,Standard_D1,Standard_D2,Standard_D3,Standard_D4,Standard_D11,Standard_D12,Standard_D13,Standard_D14,Standard_DS1_v2,Standard_DS2_v2,Standard_DS3_v2,Standard_DS4_v2,Standard_DS5_v2,Standard_DS11-1_v2,Standard_DS11_v2,Standard_DS12-1_v2,Standard_DS12-2_v2,Standard_DS12_v2,Standard_DS13-2_v2,Standard_DS13-4_v2,Standard_DS13_v2,Standard_DS14-4_v2,Standard_DS14-8_v2,Standard_DS14_v2,Standard_DS15_v2,Standard_F1s,Standard_F2s,Standard_F4s,Standard_F8s,Standard_F16s,Standard_D2s_v3,Standard_D4s_v3,Standard_D8s_v3,Standard_D16s_v3,Standard_D32s_v3,Standard_D48s_v3,Standard_D64s_v3,Standard_E2s_v3,Standard_E4-2s_v3,Standard_E4s_v3,Standard_E8-2s_v3,Standard_E8-4s_v3,Standard_E8s_v3,Standard_E16-4s_v3,Standard_E16-8s_v3,Standard_E16s_v3,Standard_E20s_v3,Standard_E32-8s_v3,Standard_E32-16s_v3,Standard_E32s_v3,Standard_E48s_v3,Standard_E64-16s_v3,Standard_E64-32s_v3,Standard_E64s_v3,Standard_DS1,Standard_DS2,Standard_DS3,Standard_DS4,Standard_DS11,Standard_DS12,Standard_DS13,Standard_DS14,Standard_E2_v4,Standard_E4_v4,Standard_E8_v4,Standard_E16_v4,Standard_E20_v4,Standard_E32_v4,Standard_E48_v4,Standard_E64_v4,Standard_E2d_v4,Standard_E4d_v4,Standard_E8d_v4,Standard_E16d_v4,Standard_E20d_v4,Standard_E32d_v4,Standard_E48d_v4,Standard_E64d_v4,Standard_E2s_v4,Standard_E4-2s_v4,Standard_E4s_v4,Standard_E8-2s_v4,Standard_E8-4s_v4,Standard_E8s_v4,Standard_E16-4s_v4,Standard_E16-8s_v4,Standard_E16s_v4,Standard_E20s_v4,Standard_E32-8s_v4,Standard_E32-16s_v4,Standard_E32s_v4,Standard_E48s_v4,Standard_E64-16s_v4,Standard_E64-32s_v4,Standard_E64s_v4,Standard_E80is_v4,Standard_E2ds_v4,Standard_E4-2ds_v4,Standard_E4ds_v4,Standard_E8-2ds_v4,Standard_E8-4ds_v4,Standard_E8ds_v4,Standard_E16-4ds_v4,Standard_E16-8ds_v4,Standard_E16ds_v4,Standard_E20ds_v4,Standard_E32-8ds_v4,Standard_E32-16ds_v4,Standard_E32ds_v4,Standard_E48ds_v4,Standard_E64-16ds_v4,Standard_E64-32ds_v4,Standard_E64ds_v4,Standard_E80ids_v4,Standard_D2d_v4,Standard_D4d_v4,Standard_D8d_v4,Standard_D16d_v4,Standard_D32d_v4,Standard_D48d_v4,Standard_D64d_v4,Standard_D2_v4,Standard_D4_v4,Standard_D8_v4,Standard_D16_v4,Standard_D32_v4,Standard_D48_v4,Standard_D64_v4,Standard_D2ds_v4,Standard_D4ds_v4,Standard_D8ds_v4,Standard_D16ds_v4,Standard_D32ds_v4,Standard_D48ds_v4,Standard_D64ds_v4,Standard_D2s_v4,Standard_D4s_v4,Standard_D8s_v4,Standard_D16s_v4,Standard_D32s_v4,Standard_D48s_v4,Standard_D64s_v4,Standard_F2s_v2,Standard_F4s_v2,Standard_F8s_v2,Standard_F16s_v2,Standard_F32s_v2,Standard_F48s_v2,Standard_F64s_v2,Standard_F72s_v2,Standard_E112ias_v5,Standard_E112iads_v5,Standard_B2als_v2,Standard_B2as_v2,Standard_B2ats_v2,Standard_B4als_v2,Standard_B4as_v2,Standard_B8als_v2,Standard_B8as_v2,Standard_B16als_v2,Standard_B16as_v2,Standard_B32als_v2,Standard_B32as_v2,Standard_M64,Standard_M64m,Standard_M128,Standard_M128m,Standard_M8-2ms,Standard_M8-4ms,Standard_M8ms,Standard_M16-4ms,Standard_M16-8ms,Standard_M16ms,Standard_M32-8ms,Standard_M32-16ms,Standard_M32ls,Standard_M32ms,Standard_M32ts,Standard_M64-16ms,Standard_M64-32ms,Standard_M64ls,Standard_M64ms,Standard_M64s,Standard_M128-32ms,Standard_M128-64ms,Standard_M128ms,Standard_M128s,Standard_M32ms_v2,Standard_M64ms_v2,Standard_M64s_v2,Standard_M128ms_v2,Standard_M128s_v2,Standard_M192ims_v2,Standard_M192is_v2,Standard_M32dms_v2,Standard_M64dms_v2,Standard_M64ds_v2,Standard_M128dms_v2,Standard_M128ds_v2,Standard_M192idms_v2,Standard_M192ids_v2,Standard_DC2as_v5,Standard_DC4as_v5,Standard_DC8as_v5,Standard_DC16as_v5,Standard_DC32as_v5,Standard_DC48as_v5,Standard_DC64as_v5,Standard_DC96as_v5,Standard_DC2ads_v5,Standard_DC4ads_v5,Standard_DC8ads_v5,Standard_DC16ads_v5,Standard_DC32ads_v5,Standard_DC48ads_v5,Standard_DC64ads_v5,Standard_DC96ads_v5,Standard_EC2as_v5,Standard_EC4as_v5,Standard_EC8as_v5,Standard_EC16as_v5,Standard_EC20as_v5,Standard_EC32as_v5,Standard_EC48as_v5,Standard_EC64as_v5,Standard_EC96as_v5,Standard_EC96ias_v5,Standard_EC2ads_v5,Standard_EC4ads_v5,Standard_EC8ads_v5,Standard_EC16ads_v5,Standard_EC20ads_v5,Standard_EC32ads_v5,Standard_EC48ads_v5,Standard_EC64ads_v5,Standard_EC96ads_v5,Standard_EC96iads_v5,Standard_DC4as_cc_v5,Standard_DC8as_cc_v5,Standard_DC16as_cc_v5,Standard_DC32as_cc_v5,Standard_DC48as_cc_v5,Standard_DC64as_cc_v5,Standard_DC96as_cc_v5,Standard_DC4ads_cc_v5,Standard_DC8ads_cc_v5,Standard_DC16ads_cc_v5,Standard_DC32ads_cc_v5,Standard_DC48ads_cc_v5,Standard_DC64ads_cc_v5,Standard_DC96ads_cc_v5,Standard_EC4as_cc_v5,Standard_EC8as_cc_v5,Standard_EC16as_cc_v5,Standard_EC20as_cc_v5,Standard_EC32as_cc_v5,Standard_EC48as_cc_v5,Standard_EC64as_cc_v5,Standard_EC96as_cc_v5,Standard_EC4ads_cc_v5,Standard_EC8ads_cc_v5,Standard_EC16ads_cc_v5,Standard_EC20ads_cc_v5,Standard_EC32ads_cc_v5,Standard_EC48ads_cc_v5,Standard_EC64ads_cc_v5,Standard_EC96ads_cc_v5,Standard_E96ias_v4,Standard_D2ds_v5,Standard_D4ds_v5,Standard_D8ds_v5,Standard_D16ds_v5,Standard_D32ds_v5,Standard_D48ds_v5,Standard_D64ds_v5,Standard_D96ds_v5,Standard_D2d_v5,Standard_D4d_v5,Standard_D8d_v5,Standard_D16d_v5,Standard_D32d_v5,Standard_D48d_v5,Standard_D64d_v5,Standard_D96d_v5,Standard_D2s_v5,Standard_D4s_v5,Standard_D8s_v5,Standard_D16s_v5,Standard_D32s_v5,Standard_D48s_v5,Standard_D64s_v5,Standard_D96s_v5,Standard_D2_v5,Standard_D4_v5,Standard_D8_v5,Standard_D16_v5,Standard_D32_v5,Standard_D48_v5,Standard_D64_v5,Standard_D96_v5,Standard_E2ds_v5,Standard_E4-2ds_v5,Standard_E4ds_v5,Standard_E8-2ds_v5,Standard_E8-4ds_v5,Standard_E8ds_v5,Standard_E16-4ds_v5,Standard_E16-8ds_v5,Standard_E16ds_v5,Standard_E20ds_v5,Standard_E32-8ds_v5,Standard_E32-16ds_v5,Standard_E32ds_v5,Standard_E48ds_v5,Standard_E64-16ds_v5,Standard_E64-32ds_v5,Standard_E64ds_v5,Standard_E96-24ds_v5,Standard_E96-48ds_v5,Standard_E96ds_v5,Standard_E104ids_v5,Standard_E2d_v5,Standard_E4d_v5,Standard_E8d_v5,Standard_E16d_v5,Standard_E20d_v5,Standard_E32d_v5,Standard_E48d_v5,Standard_E64d_v5,Standard_E96d_v5,Standard_E104id_v5,Standard_E2s_v5,Standard_E4-2s_v5,Standard_E4s_v5,Standard_E8-2s_v5,Standard_E8-4s_v5,Standard_E8s_v5,Standard_E16-4s_v5,Standard_E16-8s_v5,Standard_E16s_v5,Standard_E20s_v5,Standard_E32-8s_v5,Standard_E32-16s_v5,Standard_E32s_v5,Standard_E48s_v5,Standard_E64-16s_v5,Standard_E64-32s_v5,Standard_E64s_v5,Standard_E96-24s_v5,Standard_E96-48s_v5,Standard_E96s_v5,Standard_E104is_v5,Standard_E2_v5,Standard_E4_v5,Standard_E8_v5,Standard_E16_v5,Standard_E20_v5,Standard_E32_v5,Standard_E48_v5,Standard_E64_v5,Standard_E96_v5,Standard_E104i_v5,Standard_E2bs_v5,Standard_E4bs_v5,Standard_E8bs_v5,Standard_E16bs_v5,Standard_E32bs_v5,Standard_E48bs_v5,Standard_E64bs_v5,Standard_E96bs_v5,Standard_E112ibs_v5,Standard_E2bds_v5,Standard_E4bds_v5,Standard_E8bds_v5,Standard_E16bds_v5,Standard_E32bds_v5,Standard_E48bds_v5,Standard_E64bds_v5,Standard_E96bds_v5,Standard_E112ibds_v5,Standard_D2ls_v5,Standard_D4ls_v5,Standard_D8ls_v5,Standard_D16ls_v5,Standard_D32ls_v5,Standard_D48ls_v5,Standard_D64ls_v5,Standard_D96ls_v5,Standard_D2lds_v5,Standard_D4lds_v5,Standard_D8lds_v5,Standard_D16lds_v5,Standard_D32lds_v5,Standard_D48lds_v5,Standard_D64lds_v5,Standard_D96lds_v5,Standard_B2ls_v2,Standard_B2s_v2,Standard_B2ts_v2,Standard_B4ls_v2,Standard_B4s_v2,Standard_B8ls_v2,Standard_B8s_v2,Standard_B16ls_v2,Standard_B16s_v2,Standard_B32ls_v2,Standard_B32s_v2,Standard_A0,Standard_A1,Standard_A2,Standard_A3,Standard_A5,Standard_A4,Standard_A6,Standard_A7,Basic_A0,Basic_A1,Basic_A2,Basic_A3,Basic_A4,Standard_M12s_v3,Standard_M24s_v3,Standard_M48s_1_v3,Standard_M96s_1_v3,Standard_M96s_2_v3,Standard_M176s_3_v3,Standard_M176s_4_v3,Standard_M12ds_v3,Standard_M24ds_v3,Standard_M48ds_1_v3,Standard_M96ds_1_v3,Standard_M96ds_2_v3,Standard_M176ds_3_v3,Standard_M176ds_4_v3,Standard_E64i_v3,Standard_E64is_v3,Standard_M208ms_v2,Standard_M208s_v2,Standard_M416-208s_v2,Standard_M416s_v2,Standard_M416-208ms_v2,Standard_M416ms_v2,Standard_M416s_8_v2,Standard_L8s_v3,Standard_L16s_v3,Standard_L32s_v3,Standard_L48s_v3,Standard_L64s_v3,Standard_L80s_v3,Standard_NC4as_T4_v3,Standard_NC8as_T4_v3,Standard_NC16as_T4_v3,Standard_NC64as_T4_v3,Standard_NV6s_v2,Standard_NV12s_v2,Standard_NV24s_v2,Standard_NV12s_v3,Standard_NV24s_v3,Standard_NV48s_v3,Standard_HB120-16rs_v2,Standard_HB120-32rs_v2,Standard_HB120-64rs_v2,Standard_HB120-96rs_v2,Standard_HB120rs_v2,Standard_D2plds_v5,Standard_D4plds_v5,Standard_D8plds_v5,Standard_D16plds_v5,Standard_D32plds_v5,Standard_D48plds_v5,Standard_D64plds_v5,Standard_D2pls_v5,Standard_D4pls_v5,Standard_D8pls_v5,Standard_D16pls_v5,Standard_D32pls_v5,Standard_D48pls_v5,Standard_D64pls_v5,Standard_D2pds_v5,Standard_D4pds_v5,Standard_D8pds_v5,Standard_D16pds_v5,Standard_D32pds_v5,Standard_D48pds_v5,Standard_D64pds_v5,Standard_D2ps_v5,Standard_D4ps_v5,Standard_D8ps_v5,Standard_D16ps_v5,Standard_D32ps_v5,Standard_D48ps_v5,Standard_D64ps_v5,Standard_E2pds_v5,Standard_E4pds_v5,Standard_E8pds_v5,Standard_E16pds_v5,Standard_E20pds_v5,Standard_E32pds_v5,Standard_E2ps_v5,Standard_E4ps_v5,Standard_E8ps_v5,Standard_E16ps_v5,Standard_E20ps_v5,Standard_E32ps_v5,Standard_B2pls_v2,Standard_B2ps_v2,Standard_B2pts_v2,Standard_B4pls_v2,Standard_B4ps_v2,Standard_B8pls_v2,Standard_B8ps_v2,Standard_B16pls_v2,Standard_B16ps_v2,Standard_NC24ads_A100_v4,Standard_NC48ads_A100_v4,Standard_NC96ads_A100_v4,Standard_L8s_v2,Standard_L16s_v2,Standard_L32s_v2,Standard_L48s_v2,Standard_L64s_v2,Standard_L80s_v2,Standard_NV6ads_A10_v5,Standard_NV12ads_A10_v5,Standard_NV18ads_A10_v5,Standard_NV36adms_A10_v5,Standard_NV36ads_A10_v5,Standard_NV72ads_A10_v5,Standard_DC8_v2,Standard_DC1s_v2,Standard_DC2s_v2,Standard_DC4s_v2,Standard_ND40rs_v2,Standard_HC44-16rs,Standard_HC44-32rs,Standard_HC44rs,Standard_HX176-24rs,Standard_HX176-48rs,Standard_HX176-96rs,Standard_HX176-144rs,Standard_HX176rs,Standard_HB176-24rs_v4,Standard_HB176-48rs_v4,Standard_HB176-96rs_v4,Standard_HB176-144rs_v4,Standard_HB176rs_v4,Standard_FX4mds,Standard_FX12mds,Standard_FX24mds,Standard_FX36mds,Standard_FX48mds,Standard_NP10s,Standard_NP20s,Standard_NP40s,Standard_NV4as_v4,Standard_NV8as_v4,Standard_NV16as_v4,Standard_NV32as_v4,Standard_ND96isr_H100_v5,Standard_ND96amsr_A100_v4,Standard_HB120-16rs_v3,Standard_HB120-32rs_v3,Standard_HB120-64rs_v3,Standard_HB120-96rs_v3,Standard_HB120rs_v3,Standard_NC6s_v3,Standard_NC12s_v3,Standard_NC24rs_v3,Standard_NC24s_v3,Standard_DC1s_v3,Standard_DC2s_v3,Standard_DC4s_v3,Standard_DC8s_v3,Standard_DC16s_v3,Standard_DC24s_v3,Standard_DC32s_v3,Standard_DC48s_v3,Standard_DC1ds_v3,Standard_DC2ds_v3,Standard_DC4ds_v3,Standard_DC8ds_v3,Standard_DC16ds_v3,Standard_DC24ds_v3,Standard_DC32ds_v3,Standard_DC48ds_v3,Standard_G1,Standard_G2,Standard_G3,Standard_G4,Standard_G5,Standard_GS1,Standard_GS2,Standard_GS3,Standard_GS4,Standard_GS4-4,Standard_GS4-8,Standard_GS5,Standard_GS5-8,Standard_GS5-16,Standard_L4s,Standard_L8s,Standard_L16s,Standard_L32s,Standard_PB6s,Standard_HB60-15rs,Standard_HB60-30rs,Standard_HB60-45rs,Standard_HB60rs,Standard_ND96asr_v4,Standard_ND40s_v3,Standard_NC40ads_H100_v5,Standard_NC80adis_H100_v5,Standard_NC8ads_A10_v4,Standard_NC16ads_A10_v4,Standard_NC32ads_A10_v4. Find out more on the valid VM sizes in each region at https://aka.ms/azure-regionservices.
Code: InvalidParameterMessage: The value provided for the VM size is not valid. The valid sizes in the current region are:
Standard_L8as_v3,Standard_L16as_v3,Standard_L32as_v3,Standard_L48as_v3,Standard_L64as_v3,Standard_L80as_v3,Standard_D2a_v4,Standard_D4a_v4,Standard_D8a_v4,Standard_D16a_v4,Standard_D32a_v4,Standard_D48a_v4,Standard_D64a_v4,Standard_D96a_v4,Standard_D2as_v4,Standard_D4as_v4,Standard_D8as_v4,Standard_D16as_v4,Standard_D32as_v4,Standard_D48as_v4,Standard_D64as_v4,Standard_D96as_v4,Standard_E2a_v4,Standard_E4a_v4,Standard_E8a_v4,Standard_E16a_v4,Standard_E20a_v4,Standard_E32a_v4,Standard_E48a_v4,Standard_E64a_v4,Standard_E96a_v4,Standard_E2as_v4,Standard_E4-2as_v4,Standard_E4as_v4,Standard_E8-2as_v4,Standard_E8-4as_v4,Standard_E8as_v4,Standard_E16-4as_v4,Standard_E16-8as_v4,Standard_E16as_v4,Standard_E20as_v4,Standard_E32-8as_v4,Standard_E32-16as_v4,Standard_E32as_v4,Standard_E48as_v4,Standard_E64-16as_v4,Standard_E64-32as_v4,Standard_E64as_v4,Standard_E96-24as_v4,Standard_E96-48as_v4,Standard_E96as_v4,Standard_D2as_v5,Standard_D4as_v5,Standard_D8as_v5,Standard_D16as_v5,Standard_D32as_v5,Standard_D48as_v5,Standard_D64as_v5,Standard_D96as_v5,Standard_E2as_v5,Standard_E4-2as_v5,Standard_E4as_v5,Standard_E8-2as_v5,Standard_E8-4as_v5,Standard_E8as_v5,Standard_E16-4as_v5,Standard_E16-8as_v5,Standard_E16as_v5,Standard_E20as_v5,Standard_E32-8as_v5,Standard_E32-16as_v5,Standard_E32as_v5,Standard_E48as_v5,Standard_E64-16as_v5,Standard_E64-32as_v5,Standard_E64as_v5,Standard_E96-24as_v5,Standard_E96-48as_v5,Standard_E96as_v5,Standard_D2ads_v5,Standard_D4ads_v5,Standard_D8ads_v5,Standard_D16ads_v5,Standard_D32ads_v5,Standard_D48ads_v5,Standard_D64ads_v5,Standard_D96ads_v5,Standard_E2ads_v5,Standard_E4-2ads_v5,Standard_E4ads_v5,Standard_E8-2ads_v5,Standard_E8-4ads_v5,Standard_E8ads_v5,Standard_E16-4ads_v5,Standard_E16-8ads_v5,Standard_E16ads_v5,Standard_E20ads_v5,Standard_E32-8ads_v5,Standard_E32-16ads_v5,Standard_E32ads_v5,Standard_E48ads_v5,Standard_E64-16ads_v5,Standard_E64-32ads_v5,Standard_E64ads_v5,Standard_E96-24ads_v5,Standard_E96-48ads_v5,Standard_E96ads_v5,Standard_B1ls,Standard_B1ms,Standard_B1s,Standard_B2ms,Standard_B2s,Standard_B4ms,Standard_B8ms,Standard_B12ms,Standard_B16ms,Standard_B20ms,Standard_D1_v2,Standard_D2_v2,Standard_D3_v2,Standard_D4_v2,Standard_D5_v2,Standard_D11_v2,Standard_D12_v2,Standard_D13_v2,Standard_D14_v2,Standard_D15_v2,Standard_D2_v2_Promo,Standard_D3_v2_Promo,Standard_D4_v2_Promo,Standard_D5_v2_Promo,Standard_D11_v2_Promo,Standard_D12_v2_Promo,Standard_D13_v2_Promo,Standard_D14_v2_Promo,Standard_DS2_v2_Promo,Standard_DS3_v2_Promo,Standard_DS4_v2_Promo,Standard_DS5_v2_Promo,Standard_DS11_v2_Promo,Standard_DS12_v2_Promo,Standard_DS13_v2_Promo,Standard_DS14_v2_Promo,Standard_F1,Standard_F2,Standard_F4,Standard_F8,Standard_F16,Standard_A1_v2,Standard_A2m_v2,Standard_A2_v2,Standard_A4m_v2,Standard_A4_v2,Standard_A8m_v2,Standard_A8_v2,Standard_D2_v3,Standard_D4_v3,Standard_D8_v3,Standard_D16_v3,Standard_D32_v3,Standard_D48_v3,Standard_D64_v3,Standard_E2_v3,Standard_E4_v3,Standard_E8_v3,Standard_E16_v3,Standard_E20_v3,Standard_E32_v3,Standard_E48_v3,Standard_E64_v3,Standard_D1,Standard_D2,Standard_D3,Standard_D4,Standard_D11,Standard_D12,Standard_D13,Standard_D14,Standard_DS1_v2,Standard_DS2_v2,Standard_DS3_v2,Standard_DS4_v2,Standard_DS5_v2,Standard_DS11-1_v2,Standard_DS11_v2,Standard_DS12-1_v2,Standard_DS12-2_v2,Standard_DS12_v2,Standard_DS13-2_v2,Standard_DS13-4_v2,Standard_DS13_v2,Standard_DS14-4_v2,Standard_DS14-8_v2,Standard_DS14_v2,Standard_DS15_v2,Standard_F1s,Standard_F2s,Standard_F4s,Standard_F8s,Standard_F16s,Standard_D2s_v3,Standard_D4s_v3,Standard_D8s_v3,Standard_D16s_v3,Standard_D32s_v3,Standard_D48s_v3,Standard_D64s_v3,Standard_E2s_v3,Standard_E4-2s_v3,Standard_E4s_v3,Standard_E8-2s_v3,Standard_E8-4s_v3,Standard_E8s_v3,Standard_E16-4s_v3,Standard_E16-8s_v3,Standard_E16s_v3,Standard_E20s_v3,Standard_E32-8s_v3,Standard_E32-16s_v3,Standard_E32s_v3,Standard_E48s_v3,Standard_E64-16s_v3,Standard_E64-32s_v3,Standard_E64s_v3,Standard_DS1,Standard_DS2,Standard_DS3,Standard_DS4,Standard_DS11,Standard_DS12,Standard_DS13,Standard_DS14,Standard_E2_v4,Standard_E4_v4,Standard_E8_v4,Standard_E16_v4,Standard_E20_v4,Standard_E32_v4,Standard_E48_v4,Standard_E64_v4,Standard_E2d_v4,Standard_E4d_v4,Standard_E8d_v4,Standard_E16d_v4,Standard_E20d_v4,Standard_E32d_v4,Standard_E48d_v4,Standard_E64d_v4,Standard_E2s_v4,Standard_E4-2s_v4,Standard_E4s_v4,Standard_E8-2s_v4,Standard_E8-4s_v4,Standard_E8s_v4,Standard_E16-4s_v4,Standard_E16-8s_v4,Standard_E16s_v4,Standard_E20s_v4,Standard_E32-8s_v4,Standard_E32-16s_v4,Standard_E32s_v4,Standard_E48s_v4,Standard_E64-16s_v4,Standard_E64-32s_v4,Standard_E64s_v4,Standard_E80is_v4,Standard_E2ds_v4,Standard_E4-2ds_v4,Standard_E4ds_v4,Standard_E8-2ds_v4,Standard_E8-4ds_v4,Standard_E8ds_v4,Standard_E16-4ds_v4,Standard_E16-8ds_v4,Standard_E16ds_v4,Standard_E20ds_v4,Standard_E32-8ds_v4,Standard_E32-16ds_v4,Standard_E32ds_v4,Standard_E48ds_v4,Standard_E64-16ds_v4,Standard_E64-32ds_v4,Standard_E64ds_v4,Standard_E80ids_v4,Standard_D2d_v4,Standard_D4d_v4,Standard_D8d_v4,Standard_D16d_v4,Standard_D32d_v4,Standard_D48d_v4,Standard_D64d_v4,Standard_D2_v4,Standard_D4_v4,Standard_D8_v4,Standard_D16_v4,Standard_D32_v4,Standard_D48_v4,Standard_D64_v4,Standard_D2ds_v4,Standard_D4ds_v4,Standard_D8ds_v4,Standard_D16ds_v4,Standard_D32ds_v4,Standard_D48ds_v4,Standard_D64ds_v4,Standard_D2s_v4,Standard_D4s_v4,Standard_D8s_v4,Standard_D16s_v4,Standard_D32s_v4,Standard_D48s_v4,Standard_D64s_v4,Standard_F2s_v2,Standard_F4s_v2,Standard_F8s_v2,Standard_F16s_v2,Standard_F32s_v2,Standard_F48s_v2,Standard_F64s_v2,Standard_F72s_v2,Standard_E112ias_v5,Standard_E112iads_v5,Standard_B2als_v2,Standard_B2as_v2,Standard_B2ats_v2,Standard_B4als_v2,Standard_B4as_v2,Standard_B8als_v2,Standard_B8as_v2,Standard_B16als_v2,Standard_B16as_v2,Standard_B32als_v2,Standard_B32as_v2,Standard_M64,Standard_M64m,Standard_M128,Standard_M128m,Standard_M8-2ms,Standard_M8-4ms,Standard_M8ms,Standard_M16-4ms,Standard_M16-8ms,Standard_M16ms,Standard_M32-8ms,Standard_M32-16ms,Standard_M32ls,Standard_M32ms,Standard_M32ts,Standard_M64-16ms,Standard_M64-32ms,Standard_M64ls,Standard_M64ms,Standard_M64s,Standard_M128-32ms,Standard_M128-64ms,Standard_M128ms,Standard_M128s,Standard_M32ms_v2,Standard_M64ms_v2,Standard_M64s_v2,Standard_M128ms_v2,Standard_M128s_v2,Standard_M192ims_v2,Standard_M192is_v2,Standard_M32dms_v2,Standard_M64dms_v2,Standard_M64ds_v2,Standard_M128dms_v2,Standard_M128ds_v2,Standard_M192idms_v2,Standard_M192ids_v2,Standard_DC2as_v5,Standard_DC4as_v5,Standard_DC8as_v5,Standard_DC16as_v5,Standard_DC32as_v5,Standard_DC48as_v5,Standard_DC64as_v5,Standard_DC96as_v5,Standard_DC2ads_v5,Standard_DC4ads_v5,Standard_DC8ads_v5,Standard_DC16ads_v5,Standard_DC32ads_v5,Standard_DC48ads_v5,Standard_DC64ads_v5,Standard_DC96ads_v5,Standard_EC2as_v5,Standard_EC4as_v5,Standard_EC8as_v5,Standard_EC16as_v5,Standard_EC20as_v5,Standard_EC32as_v5,Standard_EC48as_v5,Standard_EC64as_v5,Standard_EC96as_v5,Standard_EC96ias_v5,Standard_EC2ads_v5,Standard_EC4ads_v5,Standard_EC8ads_v5,Standard_EC16ads_v5,Standard_EC20ads_v5,Standard_EC32ads_v5,Standard_EC48ads_v5,Standard_EC64ads_v5,Standard_EC96ads_v5,Standard_EC96iads_v5,Standard_DC4as_cc_v5,Standard_DC8as_cc_v5,Standard_DC16as_cc_v5,Standard_DC32as_cc_v5,Standard_DC48as_cc_v5,Standard_DC64as_cc_v5,Standard_DC96as_cc_v5,Standard_DC4ads_cc_v5,Standard_DC8ads_cc_v5,Standard_DC16ads_cc_v5,Standard_DC32ads_cc_v5,Standard_DC48ads_cc_v5,Standard_DC64ads_cc_v5,Standard_DC96ads_cc_v5,Standard_EC4as_cc_v5,Standard_EC8as_cc_v5,Standard_EC16as_cc_v5,Standard_EC20as_cc_v5,Standard_EC32as_cc_v5,Standard_EC48as_cc_v5,Standard_EC64as_cc_v5,Standard_EC96as_cc_v5,Standard_EC4ads_cc_v5,Standard_EC8ads_cc_v5,Standard_EC16ads_cc_v5,Standard_EC20ads_cc_v5,Standard_EC32ads_cc_v5,Standard_EC48ads_cc_v5,Standard_EC64ads_cc_v5,Standard_EC96ads_cc_v5,Standard_E96ias_v4,Standard_D2ds_v5,Standard_D4ds_v5,Standard_D8ds_v5,Standard_D16ds_v5,Standard_D32ds_v5,Standard_D48ds_v5,Standard_D64ds_v5,Standard_D96ds_v5,Standard_D2d_v5,Standard_D4d_v5,Standard_D8d_v5,Standard_D16d_v5,Standard_D32d_v5,Standard_D48d_v5,Standard_D64d_v5,Standard_D96d_v5,Standard_D2s_v5,Standard_D4s_v5,Standard_D8s_v5,Standard_D16s_v5,Standard_D32s_v5,Standard_D48s_v5,Standard_D64s_v5,Standard_D96s_v5,Standard_D2_v5,Standard_D4_v5,Standard_D8_v5,Standard_D16_v5,Standard_D32_v5,Standard_D48_v5,Standard_D64_v5,Standard_D96_v5,Standard_E2ds_v5,Standard_E4-2ds_v5,Standard_E4ds_v5,Standard_E8-2ds_v5,Standard_E8-4ds_v5,Standard_E8ds_v5,Standard_E16-4ds_v5,Standard_E16-8ds_v5,Standard_E16ds_v5,Standard_E20ds_v5,Standard_E32-8ds_v5,Standard_E32-16ds_v5,Standard_E32ds_v5,Standard_E48ds_v5,Standard_E64-16ds_v5,Standard_E64-32ds_v5,Standard_E64ds_v5,Standard_E96-24ds_v5,Standard_E96-48ds_v5,Standard_E96ds_v5,Standard_E104ids_v5,Standard_E2d_v5,Standard_E4d_v5,Standard_E8d_v5,Standard_E16d_v5,Standard_E20d_v5,Standard_E32d_v5,Standard_E48d_v5,Standard_E64d_v5,Standard_E96d_v5,Standard_E104id_v5,Standard_E2s_v5,Standard_E4-2s_v5,Standard_E4s_v5,Standard_E8-2s_v5,Standard_E8-4s_v5,Standard_E8s_v5,Standard_E16-4s_v5,Standard_E16-8s_v5,Standard_E16s_v5,Standard_E20s_v5,Standard_E32-8s_v5,Standard_E32-16s_v5,Standard_E32s_v5,Standard_E48s_v5,Standard_E64-16s_v5,Standard_E64-32s_v5,Standard_E64s_v5,Standard_E96-24s_v5,Standard_E96-48s_v5,Standard_E96s_v5,Standard_E104is_v5,Standard_E2_v5,Standard_E4_v5,Standard_E8_v5,Standard_E16_v5,Standard_E20_v5,Standard_E32_v5,Standard_E48_v5,Standard_E64_v5,Standard_E96_v5,Standard_E104i_v5,Standard_E2bs_v5,Standard_E4bs_v5,Standard_E8bs_v5,Standard_E16bs_v5,Standard_E32bs_v5,Standard_E48bs_v5,Standard_E64bs_v5,Standard_E96bs_v5,Standard_E112ibs_v5,Standard_E2bds_v5,Standard_E4bds_v5,Standard_E8bds_v5,Standard_E16bds_v5,Standard_E32bds_v5,Standard_E48bds_v5,Standard_E64bds_v5,Standard_E96bds_v5,Standard_E112ibds_v5,Standard_D2ls_v5,Standard_D4ls_v5,Standard_D8ls_v5,Standard_D16ls_v5,Standard_D32ls_v5,Standard_D48ls_v5,Standard_D64ls_v5,Standard_D96ls_v5,Standard_D2lds_v5,Standard_D4lds_v5,Standard_D8lds_v5,Standard_D16lds_v5,Standard_D32lds_v5,Standard_D48lds_v5,Standard_D64lds_v5,Standard_D96lds_v5,Standard_B2ls_v2,Standard_B2s_v2,Standard_B2ts_v2,Standard_B4ls_v2,Standard_B4s_v2,Standard_B8ls_v2,Standard_B8s_v2,Standard_B16ls_v2,Standard_B16s_v2,Standard_B32ls_v2,Standard_B32s_v2,Standard_A0,Standard_A1,Standard_A2,Standard_A3,Standard_A5,Standard_A4,Standard_A6,Standard_A7,Basic_A0,Basic_A1,Basic_A2,Basic_A3,Basic_A4,Standard_M12s_v3,Standard_M24s_v3,Standard_M48s_1_v3,Standard_M96s_1_v3,Standard_M96s_2_v3,Standard_M176s_3_v3,Standard_M176s_4_v3,Standard_M12ds_v3,Standard_M24ds_v3,Standard_M48ds_1_v3,Standard_M96ds_1_v3,Standard_M96ds_2_v3,Standard_M176ds_3_v3,Standard_M176ds_4_v3,Standard_E64i_v3,Standard_E64is_v3,Standard_M208ms_v2,Standard_M208s_v2,Standard_M416-208s_v2,Standard_M416s_v2,Standard_M416-208ms_v2,Standard_M416ms_v2,Standard_M416s_8_v2,Standard_L8s_v3,Standard_L16s_v3,Standard_L32s_v3,Standard_L48s_v3,Standard_L64s_v3,Standard_L80s_v3,Standard_NC4as_T4_v3,Standard_NC8as_T4_v3,Standard_NC16as_T4_v3,Standard_NC64as_T4_v3,Standard_NV6s_v2,Standard_NV12s_v2,Standard_NV24s_v2,Standard_NV12s_v3,Standard_NV24s_v3,Standard_NV48s_v3,Standard_HB120-16rs_v2,Standard_HB120-32rs_v2,Standard_HB120-64rs_v2,Standard_HB120-96rs_v2,Standard_HB120rs_v2,Standard_D2plds_v5,Standard_D4plds_v5,Standard_D8plds_v5,Standard_D16plds_v5,Standard_D32plds_v5,Standard_D48plds_v5,Standard_D64plds_v5,Standard_D2pls_v5,Standard_D4pls_v5,Standard_D8pls_v5,Standard_D16pls_v5,Standard_D32pls_v5,Standard_D48pls_v5,Standard_D64pls_v5,Standard_D2pds_v5,Standard_D4pds_v5,Standard_D8pds_v5,Standard_D16pds_v5,Standard_D32pds_v5,Standard_D48pds_v5,Standard_D64pds_v5,Standard_D2ps_v5,Standard_D4ps_v5,Standard_D8ps_v5,Standard_D16ps_v5,Standard_D32ps_v5,Standard_D48ps_v5,Standard_D64ps_v5,Standard_E2pds_v5,Standard_E4pds_v5,Standard_E8pds_v5,Standard_E16pds_v5,Standard_E20pds_v5,Standard_E32pds_v5,Standard_E2ps_v5,Standard_E4ps_v5,Standard_E8ps_v5,Standard_E16ps_v5,Standard_E20ps_v5,Standard_E32ps_v5,Standard_B2pls_v2,Standard_B2ps_v2,Standard_B2pts_v2,Standard_B4pls_v2,Standard_B4ps_v2,Standard_B8pls_v2,Standard_B8ps_v2,Standard_B16pls_v2,Standard_B16ps_v2,Standard_NC24ads_A100_v4,Standard_NC48ads_A100_v4,Standard_NC96ads_A100_v4,Standard_L8s_v2,Standard_L16s_v2,Standard_L32s_v2,Standard_L48s_v2,Standard_L64s_v2,Standard_L80s_v2,Standard_NV6ads_A10_v5,Standard_NV12ads_A10_v5,Standard_NV18ads_A10_v5,Standard_NV36adms_A10_v5,Standard_NV36ads_A10_v5,Standard_NV72ads_A10_v5,Standard_DC8_v2,Standard_DC1s_v2,Standard_DC2s_v2,Standard_DC4s_v2,Standard_ND40rs_v2,Standard_HC44-16rs,Standard_HC44-32rs,Standard_HC44rs,Standard_HX176-24rs,Standard_HX176-48rs,Standard_HX176-96rs,Standard_HX176-144rs,Standard_HX176rs,Standard_HB176-24rs_v4,Standard_HB176-48rs_v4,Standard_HB176-96rs_v4,Standard_HB176-144rs_v4,Standard_HB176rs_v4,Standard_FX4mds,Standard_FX12mds,Standard_FX24mds,Standard_FX36mds,Standard_FX48mds,Standard_NP10s,Standard_NP20s,Standard_NP40s,Standard_NV4as_v4,Standard_NV8as_v4,Standard_NV16as_v4,Standard_NV32as_v4,Standard_ND96isr_H100_v5,Standard_ND96amsr_A100_v4,Standard_HB120-16rs_v3,Standard_HB120-32rs_v3,Standard_HB120-64rs_v3,Standard_HB120-96rs_v3,Standard_HB120rs_v3,Standard_NC6s_v3,Standard_NC12s_v3,Standard_NC24rs_v3,Standard_NC24s_v3,Standard_DC1s_v3,Standard_DC2s_v3,Standard_DC4s_v3,Standard_DC8s_v3,Standard_DC16s_v3,Standard_DC24s_v3,Standard_DC32s_v3,Standard_DC48s_v3,Standard_DC1ds_v3,Standard_DC2ds_v3,Standard_DC4ds_v3,Standard_DC8ds_v3,Standard_DC16ds_v3,Standard_DC24ds_v3,Standard_DC32ds_v3,Standard_DC48ds_v3,Standard_G1,Standard_G2,Standard_G3,Standard_G4,Standard_G5,Standard_GS1,Standard_GS2,Standard_GS3,Standard_GS4,Standard_GS4-4,Standard_GS4-8,Standard_GS5,Standard_GS5-8,Standard_GS5-16,Standard_L4s,Standard_L8s,Standard_L16s,Standard_L32s,Standard_PB6s,Standard_HB60-15rs,Standard_HB60-30rs,Standard_HB60-45rs,Standard_HB60rs,Standard_ND96asr_v4,Standard_ND40s_v3,Standard_NC40ads_H100_v5,Standard_NC80adis_H100_v5,Standard_NC8ads_A10_v4,Standard_NC16ads_A10_v4,Standard_NC32ads_A10_v4. Find out more on the valid VM sizes in each region at https://aka.ms/azure-regionservices.
Target: vmSize
[ERROR ] Error creating VM myvm001! ({})
Error: There was a profile error: Error creating VM myvm001! ({})
Expected behavior
A clear and concise description of what you expected to happen.
salt-cloud -p my-azurerm-profile myvm001
should succeed without error
Screenshots
If applicable, add screenshots to help explain your problem.
Versions Report
Salt Version:
Salt: 3006.5
Python Version:
Python: 3.10.13 (main, Nov 15 2023, 04:34:27) [GCC 11.2.0]
Dependency Versions:
cffi: 1.14.6
cherrypy: unknown
dateutil: 2.8.1
docker-py: Not Installed
gitdb: Not Installed
gitpython: Not Installed
Jinja2: 3.1.2
libgit2: 1.7.2
looseversion: 1.0.2
M2Crypto: Not Installed
Mako: Not Installed
msgpack: 1.0.2
msgpack-pure: Not Installed
mysql-python: Not Installed
packaging: 22.0
pycparser: 2.21
pycrypto: Not Installed
pycryptodome: 3.9.8
pygit2: 1.14.1
python-gnupg: 0.4.8
PyYAML: 6.0.1
PyZMQ: 23.2.0
relenv: 0.14.2
smmap: Not Installed
timelib: 0.2.4
Tornado: 4.5.3
ZMQ: 4.3.4
Salt Extensions:
saltext.azurerm: 4.1.0
System Versions:
dist: ubuntu 20.04.6 focal
locale: utf-8
machine: x86_64
release: 5.15.0-1060-azure
system: Linux
version: Ubuntu 20.04.6 focal
Additional context
Add any other context about the problem here.
Description
salt-cloud -m errors out based on an incomplete profile but does not indicate which attribute is missing a value.
Setup
azure-config:
driver: azurerm
subscription_id: <subscription>
certificate_path: /etc/salt/azure.pem
tenant: <tenant>
client_id: <client>
secret: <secret>
location: southcentralus
azure-ubuntu:
provider: tt-azure-config
image: 'canonical|0001-com-ubuntu-server-focal|20_04-lts-gen2|latest'
size: Standard_D2s_v3
location: 'southcentralus'
ssh_username: azureuser
ssh_publickeyfile: /etc/salt/saltkey.pub
virtual_network_name: EnterpriseMgmt-vnet
subnet_name: default
slot: production
resource_group_name: EnterpriseMgmt
Please be as specific as possible and give set-up details.
Steps to Reproduce the behavior
(Include debug logs if possible and relevant)
Expected behavior
Either print minimum profile template or print the attribute that is missing the value
Screenshots
If applicable, add screenshots to help explain your problem.
Versions Report
Salt Version:
Salt: 3004.2
Dependency Versions:
cffi: Not Installed
cherrypy: Not Installed
dateutil: 2.7.3
docker-py: Not Installed
gitdb: 2.0.6
gitpython: 3.0.7
Jinja2: 2.10.1
libgit2: Not Installed
M2Crypto: Not Installed
Mako: Not Installed
msgpack: 0.6.2
msgpack-pure: Not Installed
mysql-python: Not Installed
pycparser: Not Installed
pycrypto: 2.6.1
pycryptodome: 3.6.1
pygit2: Not Installed
Python: 3.8.10 (default, Jun 22 2022, 20:18:18)
python-gnupg: 0.4.5
PyYAML: 5.3.1
PyZMQ: 18.1.1
smmap: 2.0.5
timelib: Not Installed
Tornado: 4.5.3
ZMQ: 4.3.2
Salt Extensions:
saltext.azurerm: 1.0.0
System Versions:
dist: ubuntu 20.04 focal
locale: utf-8
machine: x86_64
release: 5.15.0-1020-azure
system: Linux
version: Ubuntu 20.04 focal```
</details>
**Additional context**
Add any other context about the problem here.
Is your feature request related to a problem? Please describe.
Right now, we don't have the ability to pass both a password and an ssh key.
Describe the solution you'd like
Allowing both would be nice.
Additional context
Originally reported in Salt issue 56152 opened by @tkykm
saltstack/salt#56152 (comment)
Description
I'm trying using azurerm with Salt 3006.7 via salt-cloud, but always same error is coming :
[ERROR ] There was a profile error: azure.identity._credentials.managed_identity.ManagedIdentityCredential() got multiple values for keyword argument 'client_id'
Setup
saltext-azurem installed via /opt/saltstack/salt/bin/pip
like mentionned in saltstack/salt#65433, otherwise via salt-pip
I get module not load error
Here's pip packages installed
# salt-pip list
Package Version
--------------------------- ---------
adal 1.2.7
azure-batch 12.0.0
azure-common 1.1.28
azure-core 1.24.2
azure-graphrbac 0.61.1
azure-identity 1.10.0
azure-keyvault 4.2.0
azure-keyvault-certificates 4.7.0
azure-keyvault-keys 4.8.0
azure-keyvault-secrets 4.7.0
azure-mgmt-authorization 2.0.0
azure-mgmt-batch 16.2.0
azure-mgmt-compute 27.1.0
azure-mgmt-core 1.3.2
azure-mgmt-dns 8.0.0
azure-mgmt-keyvault 10.1.0
azure-mgmt-monitor 6.0.1
azure-mgmt-msi 6.0.1
azure-mgmt-network 20.0.0
azure-mgmt-privatedns 1.0.0
azure-mgmt-resource 21.1.0
azure-mgmt-storage 21.0.0
azure-mgmt-subscription 3.0.0
azure-mgmt-web 6.1.0
azure-nspkg 3.0.2
azure-storage-blob 12.12.0
azure-storage-common 2.1.0
azure-storage-file 2.1.0
azure-storage-nspkg 3.1.0
azure-storage-queue 12.3.0
certifi 2023.7.22
cffi 1.14.6
charset-normalizer 3.2.0
cheroot 8.5.2
CherryPy 18.6.1
contextvars 2.4
cryptography 42.0.3
distlib 0.3.7
distro 1.5.0
elastic-transport 8.10.0
elasticsearch 8.11.0
envtpl 0.7.2
filelock 3.13.1
idna 3.2
immutables 0.15
importlib-metadata 6.0.0
isodate 0.6.1
jaraco.classes 3.2.1
jaraco.collections 3.4.0
jaraco.functools 2.0
jaraco.text 3.5.1
Jinja2 3.1.3
jmespath 1.0.1
looseversion 1.0.2
Mako 1.2.4
MarkupSafe 2.1.2
more-itertools 5.0.0
msal 1.27.0
msal-extensions 1.1.0
msgpack 1.0.2
msrest 0.7.1
msrestazure 0.6.4
oauthlib 3.2.2
packaging 22.0
pip 23.3.2
platformdirs 4.1.0
portalocker 2.8.2
portend 2.4
psutil 5.8.0
pycparser 2.21
pycryptodomex 3.19.1
pygit2 1.11.1
PyJWT 2.8.0
pyOpenSSL 24.0.0
PySocks 1.7.1
python-dateutil 2.8.1
python-gnupg 0.4.8
pytz 2022.1
PyYAML 6.0.1
pyzmq 23.2.0
relenv 0.15.1
requests 2.31.0
requests-oauthlib 1.3.1
rpm-vercmp 0.1.2
salt 3006.7
saltext.azurerm 4.0.1
setproctitle 1.3.2
setuptools 68.2.2
six 1.16.0
supervisor 4.2.5
tempora 4.1.1
timelib 0.2.5
typing_extensions 4.10.0
urllib3 1.26.18
virtualenv 20.25.0
wheel 0.42.0
zc.lockfile 1.4
zipp 3.6.0
My provider configuration
# cat /etc/salt/cloud.providers.d/azure.conf
azurearm-FranceCentral:
driver: azurerm
master: salt-syndic1-azr-pilot-francecentral-xxxxx
subscription_id: xxxxxxxxx
tenant: xxxxxxxxxx
client_id: xxxxxxxxxxx
secret: xxxxxxxxx
location: FranceCentral
storage_account: xxxxxx
storage_key: xxxxxxxx
ssh_username: xxxxxx
ssh_password: xxxxxxx
Steps to Reproduce the behavior
When I run some salt-cloud command, I always get this
# salt-cloud --list-locations azurearm-FranceCentral -l debug
[DEBUG ] Reading configuration from /etc/salt/cloud
[DEBUG ] Reading configuration from /etc/salt/master
[DEBUG ] Including configuration from '/etc/salt/master.d/00-general.conf'
[DEBUG ] Reading configuration from /etc/salt/master.d/00-general.conf
[DEBUG ] Including configuration from '/etc/salt/master.d/05-syndic.conf'
[DEBUG ] Reading configuration from /etc/salt/master.d/05-syndic.conf
[DEBUG ] Including configuration from '/etc/salt/master.d/10-jobs.conf'
[DEBUG ] Reading configuration from /etc/salt/master.d/10-jobs.conf
[DEBUG ] Including configuration from '/etc/salt/master.d/20-vault.conf'
[DEBUG ] Reading configuration from /etc/salt/master.d/20-vault.conf
[DEBUG ] Including configuration from '/etc/salt/master.d/22-gitfs.conf'
[DEBUG ] Reading configuration from /etc/salt/master.d/22-gitfs.conf
[DEBUG ] Including configuration from '/etc/salt/master.d/23-pillar.conf'
[DEBUG ] Reading configuration from /etc/salt/master.d/23-pillar.conf
[DEBUG ] Including configuration from '/etc/salt/master.d/24-cache.conf'
[DEBUG ] Reading configuration from /etc/salt/master.d/24-cache.conf
[DEBUG ] Including configuration from '/etc/salt/master.d/30-reactor.conf'
[DEBUG ] Reading configuration from /etc/salt/master.d/30-reactor.conf
[DEBUG ] Including configuration from '/etc/salt/master.d/40-api.conf'
[DEBUG ] Reading configuration from /etc/salt/master.d/40-api.conf
[DEBUG ] Including configuration from '/etc/salt/master.d/50-auth.conf'
[DEBUG ] Reading configuration from /etc/salt/master.d/50-auth.conf
[DEBUG ] Including configuration from '/etc/salt/master.d/60-peer_run.conf'
[DEBUG ] Reading configuration from /etc/salt/master.d/60-peer_run.conf
[DEBUG ] Using cached minion ID from /etc/salt/minion_id: salt-build-insideboard.internal.cloudapp.net
[DEBUG ] Missing configuration file: /etc/salt/cloud.providers
[DEBUG ] Including configuration from '/etc/salt/cloud.providers.d/azure.conf'
[DEBUG ] Reading configuration from /etc/salt/cloud.providers.d/azure.conf
[DEBUG ] Reading configuration from /etc/salt/cloud.profiles
[DEBUG ] Including configuration from '/etc/salt/cloud.profiles.d/client.conf'
[DEBUG ] Reading configuration from /etc/salt/cloud.profiles.d/client.conf
[DEBUG ] Including configuration from '/etc/salt/cloud.profiles.d/proxy.conf'
[DEBUG ] Reading configuration from /etc/salt/cloud.profiles.d/proxy.conf
[DEBUG ] Including configuration from '/etc/salt/cloud.profiles.d/sensu.conf'
[DEBUG ] Reading configuration from /etc/salt/cloud.profiles.d/sensu.conf
[WARNING ] Insecure logging configuration detected! Sensitive data may be logged.
[DEBUG ] Configuration file path: /etc/salt/cloud
[INFO ] salt-cloud starting
[DEBUG ] Reading configuration from /etc/salt/minion
[DEBUG ] Including configuration from '/etc/salt/minion.d/_schedule.conf'
[DEBUG ] Reading configuration from /etc/salt/minion.d/_schedule.conf
[DEBUG ] Including configuration from '/etc/salt/minion.d/smtp.conf'
[DEBUG ] Reading configuration from /etc/salt/minion.d/smtp.conf
[DEBUG ] Reading configuration from /etc/salt/minion
[DEBUG ] Including configuration from '/etc/salt/minion.d/_schedule.conf'
[DEBUG ] Reading configuration from /etc/salt/minion.d/_schedule.conf
[DEBUG ] Including configuration from '/etc/salt/minion.d/smtp.conf'
[DEBUG ] Reading configuration from /etc/salt/minion.d/smtp.conf
[DEBUG ] The functions from module 'aggregation' are being loaded from the provided __all__ attribute
[DEBUG ] Marking 'ifelse' as a jinja global
[DEBUG ] Marking 'strftime' as a jinja filter
[DEBUG ] Marking 'date_format' as a jinja filter
[DEBUG ] Marking 'base64_encode' as a jinja filter
[DEBUG ] Marking 'base64_decode' as a jinja filter
[DEBUG ] Marking 'md5' as a jinja filter
[DEBUG ] Marking 'sha1' as a jinja filter
[DEBUG ] Marking 'sha256' as a jinja filter
[DEBUG ] Marking 'sha512' as a jinja filter
[DEBUG ] Marking 'hmac' as a jinja filter
[DEBUG ] Marking 'hmac_compute' as a jinja filter
[DEBUG ] Marking 'random_hash' as a jinja filter
[DEBUG ] Marking 'rand_str' as a jinja filter
[DEBUG ] Marking 'file_hashsum' as a jinja filter
[DEBUG ] Marking 'http_query' as a jinja filter
[DEBUG ] Marking 'raise' as a jinja global
[DEBUG ] Marking 'match' as a jinja test
[DEBUG ] Marking 'equalto' as a jinja test
[DEBUG ] Marking 'skip' as a jinja filter
[DEBUG ] Marking 'sequence' as a jinja filter
[DEBUG ] Marking 'to_bool' as a jinja filter
[DEBUG ] Marking 'indent' as a jinja filter
[DEBUG ] Marking 'tojson' as a jinja filter
[DEBUG ] Marking 'quote' as a jinja filter
[DEBUG ] Marking 'regex_escape' as a jinja filter
[DEBUG ] Marking 'regex_search' as a jinja filter
[DEBUG ] Marking 'regex_match' as a jinja filter
[DEBUG ] Marking 'regex_replace' as a jinja filter
[DEBUG ] Marking 'uuid' as a jinja filter
[DEBUG ] Marking 'unique' as a jinja filter
[DEBUG ] Marking 'min' as a jinja filter
[DEBUG ] Marking 'max' as a jinja filter
[DEBUG ] Marking 'avg' as a jinja filter
[DEBUG ] Marking 'union' as a jinja filter
[DEBUG ] Marking 'intersect' as a jinja filter
[DEBUG ] Marking 'difference' as a jinja filter
[DEBUG ] Marking 'symmetric_difference' as a jinja filter
[DEBUG ] Marking 'method_call' as a jinja filter
[DEBUG ] Marking 'yaml_dquote' as a jinja filter
[DEBUG ] Marking 'yaml_squote' as a jinja filter
[DEBUG ] Marking 'yaml_encode' as a jinja filter
[DEBUG ] The functions from module 'args' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'asynchronous' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'atomicfile' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'aws' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'azurearm' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'beacons' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'boto_elb_tag' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'cache' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'channel' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'cloud' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'color' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'compat' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'configcomparer' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'configparser' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'context' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'crypt' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'ctx' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'data' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'dateutils' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'debug' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'decorators' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'dictdiffer' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'dicttrim' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'dictupdate' are being loaded by dir() on the loaded module
[DEBUG ] Override __salt__: <module 'salt.loaded.int.utils.dns' from '/opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/dns.py'>
[DEBUG ] The functions from module 'dns' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'doc' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'entrypoints' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'environment' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'error' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'etcd_util' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'event' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'extend' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'extmods' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'filebuffer' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'files' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'find' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'fsutils' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'functools' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'gitfs' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'github' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'gzip_util' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'hashutils' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'http' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'iam' are being loaded by dir() on the loaded module
[DEBUG ] Override __salt__: <module 'salt.loaded.int.utils.icinga2' from '/opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/icinga2.py'>
[DEBUG ] The functions from module 'icinga2' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'immutabletypes' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'itertools' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'jid' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'jinja' are being loaded from the provided __all__ attribute
[DEBUG ] The functions from module 'job' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'json' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'kickstart' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'kinds' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'lazy' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'listdiffer' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'locales' are being loaded by dir() on the loaded module
[DEBUG ] Override __salt__: <module 'salt.loaded.int.utils.mac_utils' from '/opt/saltstack/salt/lib/python3.10/site-packages/salt/utils/mac_utils.py'>
[DEBUG ] The functions from module 'mako' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'master' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'mattermost' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'migrations' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'mine' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'minion' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'minions' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'mount' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'msazure' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'msgpack' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'namecheap' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'napalm' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'nb_popen' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'network' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'nxos' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'nxos_api' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'odict' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'openstack' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'oset' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'pagerduty' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'parsers' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'path' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'pkg' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'platform' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'powershell' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'preseed' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'process' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'profile' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'proxy' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'psutil_compat' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'pushover' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'pycrypto' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'pydsl' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'pyobjects' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'reactor' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'reclass' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'roster_matcher' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'rsax931' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 's3' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'saltclass' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'sanitizers' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'schedule' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'schema' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'sdb' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'slack' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'smb' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'smtp' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'ssdp' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'ssh' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'state' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'stringio' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'stringutils' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'systemd' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'templates' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'textformat' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'thin' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'timed_subprocess' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'timeout' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'timeutil' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'url' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'user' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'validate' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'value' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'vault' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'verify' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'versions' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'virt' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'virtualbox' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'vt' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'vt_helper' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'x509' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'xdg' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'xmlutil' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'yaml' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'yamldumper' are being loaded from the provided __all__ attribute
[DEBUG ] The functions from module 'yamlencoding' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'yamllint' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'yamlloader' are being loaded from the provided __all__ attribute
[DEBUG ] The functions from module 'yamlloader_old' are being loaded from the provided __all__ attribute
[DEBUG ] The functions from module 'yast' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'zeromq' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'zfs' are being loaded by dir() on the loaded module
[DEBUG ] Override __utils__: <module 'salt.loaded.int.clouds.azurerm' from '/opt/saltstack/salt/lib/python3.10/site-packages/saltext/azurerm/clouds/azurerm.py'>
[DEBUG ] The functions from module 'azurerm' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'lxc' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'saltify' are being loaded by dir() on the loaded module
[DEBUG ] The functions from module 'vagrant' are being loaded by dir() on the loaded module
[DEBUG ] Could not LazyLoad parallels.avail_sizes: 'parallels' __virtual__ returned False
[DEBUG ] LazyLoaded parallels.avail_locations
[DEBUG ] LazyLoaded proxmox.avail_sizes
[INFO ] No environment configuration found.
[ERROR ] Failed to get the output of 'azurerm.avail_locations()': azure.identity._credentials.managed_identity.ManagedIdentityCredential() got multiple values for keyword argument 'client_id'
Traceback (most recent call last):
File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/cloud/__init__.py", line 823, in location_list
data[alias][driver] = self.clouds[fun]()
File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__
ret = self.loader.run(run_func, *args, **kwargs)
File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run
return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as
return _func_or_method(*args, **kwargs)
File "/opt/saltstack/salt/lib/python3.10/site-packages/saltext/azurerm/clouds/azurerm.py", line 335, in avail_locations
resconn = get_conn(client_type="resource")
File "/opt/saltstack/salt/lib/python3.10/site-packages/saltext/azurerm/clouds/azurerm.py", line 260, in get_conn
client = saltext.azurerm.utils.azurerm.get_client(client_type=client_type, **conn_kwargs)
File "/opt/saltstack/salt/lib/python3.10/site-packages/saltext/azurerm/utils/azurerm.py", line 161, in get_client
credentials, subscription_id, cloud_env = _determine_auth(**kwargs)
File "/opt/saltstack/salt/lib/python3.10/site-packages/saltext/azurerm/utils/azurerm.py", line 102, in _determine_auth
credentials = DefaultAzureCredential(authority=authority, **kwargs)
File "/opt/saltstack/salt/lib/python3.10/site-packages/azure/identity/_credentials/default.py", line 126, in __init__
credentials.append(ManagedIdentityCredential(client_id=managed_identity_client_id, **kwargs))
TypeError: azure.identity._credentials.managed_identity.ManagedIdentityCredential() got multiple values for keyword argument 'client_id'
[DEBUG ] The functions from module 'nested' are being loaded by dir() on the loaded module
[DEBUG ] LazyLoaded nested.output
azurearm-FranceCentral:
----------
Screenshots
If applicable, add screenshots to help explain your problem.
Versions Report
# salt --versions-report
Salt Version:
Salt: 3006.7
Python Version:
Python: 3.10.13 (main, Feb 19 2024, 03:31:20) [GCC 11.2.0]
Dependency Versions:
cffi: 1.14.6
cherrypy: unknown
dateutil: 2.8.1
docker-py: Not Installed
gitdb: Not Installed
gitpython: Not Installed
Jinja2: 3.1.3
libgit2: 1.5.0
looseversion: 1.0.2
M2Crypto: Not Installed
Mako: 1.2.4
msgpack: 1.0.2
msgpack-pure: Not Installed
mysql-python: Not Installed
packaging: 22.0
pycparser: 2.21
pycrypto: Not Installed
pycryptodome: 3.19.1
pygit2: 1.11.1
python-gnupg: 0.4.8
PyYAML: 6.0.1
PyZMQ: 23.2.0
relenv: 0.15.1
smmap: Not Installed
timelib: 0.2.4
Tornado: 4.5.3
ZMQ: 4.3.4
Salt Extensions:
saltext.azurerm: 4.0.1
System Versions:
dist: debian 10 buster
locale: utf-8
machine: x86_64
release: 4.19.0-26-cloud-amd64
system: Linux
version: Debian GNU/Linux 10 buster
Additional context
Add any other context about the problem here.
Thanks for help
Copied from Salt issue 56153 opened by @tkykm
saltstack/salt#56153 (comment)
Is your feature request related to a problem? Please describe.
It would be good to have a option about multiple NICs.
In some case, we want to associate a VM to 2 or more subnet e.g. frontend and backend
Thanks!
Describe the solution you'd like
Ideally profile
vm:
provider: azure
nics:
- network: vnet1
subnet: subnet1
- network: vnet1
subnet: subnet2
security_group: sg1
Describe alternatives you've considered
N/A
Additional context
N/A
Description
A clear and concise description of what the bug is.
saltext-azurerm >= 4.1.0 installation via salt-pip errors at install time
Setup
(Please provide relevant configs and/or SLS files (be sure to remove sensitive info. There is no general set-up of Salt.)
Please be as specific as possible and give set-up details.
Steps to Reproduce the behavior
(Include debug logs if possible and relevant)
salt-pip install saltext-azurerm
Collecting saltext-azurerm>=4.1.0
Downloading saltext.azurerm-4.1.0-py2.py3-none-any.whl (126 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 126.9/126.9 kB 4.6 MB/s eta 0:00:00
Collecting azure-mgmt-privatedns==1.0.0
Downloading azure_mgmt_privatedns-1.0.0-py2.py3-none-any.whl (43 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 44.0/44.0 kB 3.3 MB/s eta 0:00:00
Collecting azure-storage-file==2.1.0
Downloading azure_storage_file-2.1.0-py2.py3-none-any.whl (36 kB)
Collecting azure-common==1.1.28
Downloading azure_common-1.1.28-py2.py3-none-any.whl (14 kB)
Collecting azure-mgmt-storage==21.0.0
Downloading azure_mgmt_storage-21.0.0-py3-none-any.whl (2.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.8/2.8 MB 15.0 MB/s eta 0:00:00
Collecting azure-mgmt-network==20.0.0
Downloading azure_mgmt_network-20.0.0-py3-none-any.whl (8.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.5/8.5 MB 45.9 MB/s eta 0:00:00
Collecting azure-storage-nspkg==3.1.0
Downloading azure_storage_nspkg-3.1.0-py2.py3-none-any.whl (1.7 kB)
Collecting azure-mgmt-monitor==6.0.1
Downloading azure_mgmt_monitor-6.0.1-py3-none-any.whl (1.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3/1.3 MB 12.3 MB/s eta 0:00:00
Collecting azure-mgmt-web==6.1.0
Downloading azure_mgmt_web-6.1.0-py3-none-any.whl (3.9 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.9/3.9 MB 22.4 MB/s eta 0:00:00
Requirement already satisfied: salt>=3005 in /opt/saltstack/salt/lib/python3.10/site-packages (from saltext-azurerm>=4.1.0) (3006.5)
Collecting msrestazure==0.6.4
Downloading msrestazure-0.6.4-py2.py3-none-any.whl (40 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 40.5/40.5 kB 3.0 MB/s eta 0:00:00
Collecting azure-storage-queue==12.3.0
Downloading azure_storage_queue-12.3.0-py3-none-any.whl (147 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 147.7/147.7 kB 8.8 MB/s eta 0:00:00
Collecting azure-mgmt-resource==21.1.0
Downloading azure_mgmt_resource-21.1.0-py3-none-any.whl (1.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 12.8 MB/s eta 0:00:00
Collecting azure-mgmt-dns==8.0.0
Downloading azure_mgmt_dns-8.0.0-py2.py3-none-any.whl (118 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 118.9/118.9 kB 8.6 MB/s eta 0:00:00
Collecting msrest==0.7.1
Downloading msrest-0.7.1-py3-none-any.whl (85 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 85.4/85.4 kB 6.4 MB/s eta 0:00:00
Collecting azure-storage-blob==12.12.0
Downloading azure_storage_blob-12.12.0-py3-none-any.whl (366 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 366.4/366.4 kB 678.7 kB/s eta 0:00:00
Collecting azure-mgmt-batch==16.2.0
Downloading azure_mgmt_batch-16.2.0-py3-none-any.whl (126 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 126.9/126.9 kB 8.9 MB/s eta 0:00:00
Collecting azure-core==1.24.2
Downloading azure_core-1.24.2-py3-none-any.whl (178 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 178.7/178.7 kB 12.2 MB/s eta 0:00:00
Collecting azure-mgmt-subscription==3.0.0
Downloading azure_mgmt_subscription-3.0.0-py3-none-any.whl (57 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 57.1/57.1 kB 3.8 MB/s eta 0:00:00
Collecting azure-keyvault==4.2.0
Downloading azure_keyvault-4.2.0-py2.py3-none-any.whl (4.3 kB)
Collecting azure-batch==12.0.0
Downloading azure_batch-12.0.0-py2.py3-none-any.whl (231 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 231.3/231.3 kB 14.9 MB/s eta 0:00:00
Collecting azure-mgmt-authorization==2.0.0
Downloading azure_mgmt_authorization-2.0.0-py2.py3-none-any.whl (465 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 465.2/465.2 kB 4.6 MB/s eta 0:00:00
Collecting azure-graphrbac==0.61.1
Downloading azure_graphrbac-0.61.1-py2.py3-none-any.whl (141 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 141.4/141.4 kB 10.2 MB/s eta 0:00:00
Collecting azure-mgmt-msi==6.0.1
Downloading azure_mgmt_msi-6.0.1-py3-none-any.whl (73 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 73.1/73.1 kB 4.6 MB/s eta 0:00:00
Collecting azure-mgmt-compute==27.1.0
Downloading azure_mgmt_compute-27.1.0-py3-none-any.whl (5.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.5/5.5 MB 41.7 MB/s eta 0:00:00
Collecting azure-identity==1.10.0
Downloading azure_identity-1.10.0-py3-none-any.whl (134 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 134.1/134.1 kB 8.7 MB/s eta 0:00:00
Collecting azure-storage-common==2.1.0
Downloading azure_storage_common-2.1.0-py2.py3-none-any.whl (47 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 47.8/47.8 kB 3.5 MB/s eta 0:00:00
Collecting azure-mgmt-keyvault==10.1.0
Downloading azure_mgmt_keyvault-10.1.0-py3-none-any.whl (605 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 605.9/605.9 kB 12.4 MB/s eta 0:00:00
Requirement already satisfied: requests>=2.18.4 in /opt/saltstack/salt/lib/python3.10/site-packages (from azure-core==1.24.2->saltext-azurerm>=4.1.0) (2.31.0)
Collecting typing-extensions>=4.0.1
Using cached typing_extensions-4.11.0-py3-none-any.whl (34 kB)
Requirement already satisfied: six>=1.11.0 in /opt/saltstack/salt/lib/python3.10/site-packages (from azure-core==1.24.2->saltext-azurerm>=4.1.0) (1.16.0)
Collecting msal-extensions<2.0.0,>=0.3.0
Downloading msal_extensions-1.1.0-py3-none-any.whl (19 kB)
Collecting msal<2.0.0,>=1.12.0
Downloading msal-1.28.0-py3-none-any.whl (102 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 102.2/102.2 kB 8.0 MB/s eta 0:00:00
Requirement already satisfied: cryptography>=2.5 in /opt/saltstack/salt/lib/python3.10/site-packages (from azure-identity==1.10.0->saltext-azurerm>=4.1.0) (41.0.7)
Collecting azure-keyvault-certificates~=4.4
Downloading azure_keyvault_certificates-4.8.0-py3-none-any.whl (114 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 114.3/114.3 kB 4.9 MB/s eta 0:00:00
Collecting azure-keyvault-secrets~=4.4
Downloading azure_keyvault_secrets-4.8.0-py3-none-any.whl (82 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 82.8/82.8 kB 5.5 MB/s eta 0:00:00
Collecting azure-keyvault-keys~=4.5
Downloading azure_keyvault_keys-4.9.0-py3-none-any.whl (149 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 149.5/149.5 kB 9.7 MB/s eta 0:00:00
Collecting azure-mgmt-core<2.0.0,>=1.2.0
Downloading azure_mgmt_core-1.4.0-py3-none-any.whl (27 kB)
Collecting isodate<1.0.0,>=0.6.1
Downloading isodate-0.6.1-py2.py3-none-any.whl (41 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 41.7/41.7 kB 2.9 MB/s eta 0:00:00
Requirement already satisfied: python-dateutil in /opt/saltstack/salt/lib/python3.10/site-packages (from azure-storage-common==2.1.0->saltext-azurerm>=4.1.0) (2.8.1)
Collecting azure-nspkg>=2.0.0
Downloading azure_nspkg-3.0.2-py3-none-any.whl (1.5 kB)
Collecting requests-oauthlib>=0.5.0
Downloading requests_oauthlib-2.0.0-py2.py3-none-any.whl (24 kB)
Requirement already satisfied: certifi>=2017.4.17 in /opt/saltstack/salt/lib/python3.10/site-packages (from msrest==0.7.1->saltext-azurerm>=4.1.0) (2023.7.22)
Collecting adal<2.0.0,>=0.6.0
Downloading adal-1.2.7-py2.py3-none-any.whl (55 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 55.5/55.5 kB 3.8 MB/s eta 0:00:00
Requirement already satisfied: jaraco.classes==3.2.1 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (3.2.1)
Requirement already satisfied: charset-normalizer==3.2.0 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (3.2.0)
Requirement already satisfied: idna==3.2 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (3.2)
Requirement already satisfied: python-gnupg==0.4.8 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (0.4.8)
Requirement already satisfied: looseversion==1.0.2 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (1.0.2)
Requirement already satisfied: pytz==2022.1 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (2022.1)
Requirement already satisfied: timelib==0.2.5 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (0.2.5)
Requirement already satisfied: pyzmq==23.2.0 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (23.2.0)
Requirement already satisfied: zipp==3.6.0 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (3.6.0)
Requirement already satisfied: pyyaml==6.0.1 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (6.0.1)
Requirement already satisfied: setproctitle==1.3.2 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (1.3.2)
Requirement already satisfied: pycparser==2.21 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (2.21)
Requirement already satisfied: msgpack==1.0.2 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (1.0.2)
Requirement already satisfied: cherrypy==18.6.1 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (18.6.1)
Requirement already satisfied: pyopenssl==23.2.0 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (23.2.0)
Requirement already satisfied: importlib-metadata==6.0.0 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (6.0.0)
Requirement already satisfied: immutables==0.15 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (0.15)
Requirement already satisfied: jaraco.text==3.5.1 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (3.5.1)
Requirement already satisfied: jaraco.collections==3.4.0 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (3.4.0)
Requirement already satisfied: portend==2.4 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (2.4)
Requirement already satisfied: pycryptodomex==3.9.8 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (3.9.8)
Requirement already satisfied: urllib3==1.26.18 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (1.26.18)
Requirement already satisfied: more-itertools==5.0.0 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (5.0.0)
Requirement already satisfied: jmespath==1.0.1 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (1.0.1)
Requirement already satisfied: distro==1.5.0 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (1.5.0)
Collecting cffi==1.14.6
Downloading cffi-1.14.6.tar.gz (475 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 475.7/475.7 kB 8.7 MB/s eta 0:00:00
Preparing metadata (setup.py): started
Preparing metadata (setup.py): finished with status 'done'
Requirement already satisfied: jaraco.functools==2.0 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (2.0)
Requirement already satisfied: packaging==22.0 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (22.0)
Requirement already satisfied: zc.lockfile==1.4 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (1.4)
Requirement already satisfied: tempora==4.1.1 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (4.1.1)
Requirement already satisfied: cheroot==8.5.2 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (8.5.2)
Requirement already satisfied: jinja2==3.1.2 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (3.1.2)
Requirement already satisfied: psutil==5.8.0 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (5.8.0)
Requirement already satisfied: markupsafe==2.1.2 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (2.1.2)
Requirement already satisfied: rpm-vercmp==0.1.2 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (0.1.2)
Requirement already satisfied: contextvars==2.4 in /opt/saltstack/salt/lib/python3.10/site-packages (from salt>=3005->saltext-azurerm>=4.1.0) (2.4)
Requirement already satisfied: setuptools in /opt/saltstack/salt/lib/python3.10/site-packages (from zc.lockfile==1.4->salt>=3005->saltext-azurerm>=4.1.0) (68.2.2)
Collecting PyJWT<3,>=1.0.0
Downloading PyJWT-2.8.0-py3-none-any.whl (22 kB)
Collecting azure-keyvault-certificates~=4.4
Downloading azure_keyvault_certificates-4.7.0-py3-none-any.whl (428 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 428.1/428.1 kB 5.3 MB/s eta 0:00:00
Collecting azure-keyvault-keys~=4.5
Downloading azure_keyvault_keys-4.8.0-py3-none-any.whl (452 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 452.7/452.7 kB 7.4 MB/s eta 0:00:00
Collecting azure-keyvault-secrets~=4.4
Downloading azure_keyvault_secrets-4.7.0-py3-none-any.whl (348 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 348.6/348.6 kB 4.7 MB/s eta 0:00:00
Collecting azure-mgmt-core<2.0.0,>=1.2.0
Downloading azure_mgmt_core-1.3.2-py3-none-any.whl (26 kB)
Collecting portalocker<3,>=1.0
Downloading portalocker-2.8.2-py3-none-any.whl (17 kB)
Collecting oauthlib>=3.0.0
Downloading oauthlib-3.2.2-py3-none-any.whl (151 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 151.7/151.7 kB 10.4 MB/s eta 0:00:00
Building wheels for collected packages: cffi
Building wheel for cffi (setup.py): started
Building wheel for cffi (setup.py): finished with status 'error'
Running setup.py clean for cffi
Failed to build cffi
Installing collected packages: azure-nspkg, azure-common, typing-extensions, PyJWT, portalocker, oauthlib, isodate, cffi, azure-storage-nspkg, requests-oauthlib, azure-core, msrest, azure-st
orage-common, azure-mgmt-core, azure-keyvault-secrets, azure-keyvault-keys, azure-keyvault-certificates, adal, msrestazure, msal, azure-storage-queue, azure-storage-file, azure-storage-blob,
azure-mgmt-web, azure-mgmt-subscription, azure-mgmt-storage, azure-mgmt-resource, azure-mgmt-privatedns, azure-mgmt-network, azure-mgmt-msi, azure-mgmt-monitor, azure-mgmt-keyvault, azure-m
gmt-dns, azure-mgmt-compute, azure-mgmt-batch, azure-mgmt-authorization, azure-keyvault, msal-extensions, azure-graphrbac, azure-batch, azure-identity, saltext-azurerm
Attempting uninstall: cffi
Found existing installation: cffi 1.16.0
Uninstalling cffi-1.16.0:
Successfully uninstalled cffi-1.16.0
Running setup.py install for cffi: started
Running setup.py install for cffi: finished with status 'error'
Rolling back uninstall of cffi
Moving to /opt/saltstack/salt/extras-3.10/_cffi_backend.cpython-310-x86_64-linux-gnu.so
from /tmp/pip-uninstall-kmudmoa3/_cffi_backend.cpython-310-x86_64-linux-gnu.so
Moving to /opt/saltstack/salt/extras-3.10/cffi-1.16.0.dist-info/
from /opt/saltstack/salt/extras-3.10/~ffi-1.16.0.dist-info
Moving to /opt/saltstack/salt/extras-3.10/cffi/
from /opt/saltstack/salt/extras-3.10/~ffi
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [50 lines of output]
/opt/saltstack/salt/lib/python3.10/site-packages/setuptools/config/setupcfg.py:293: _DeprecatedConfig: Deprecated config in `setup.cfg`
!!
********************************************************************************
The license_file parameter is deprecated, use license_files instead.
This deprecation is overdue, please update your project and remove deprecated
calls to avoid build errors in the future.
See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details.
********************************************************************************
!!
parsed = self.parsers.get(option_name, lambda x: x)(value)
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-cpython-310
creating build/lib.linux-x86_64-cpython-310/cffi
copying cffi/vengine_gen.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/pkgconfig.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/cparser.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/model.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/api.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/error.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/vengine_cpy.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/ffiplatform.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/cffi_opcode.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/commontypes.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/__init__.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/backend_ctypes.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/setuptools_ext.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/recompiler.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/lock.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/verifier.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/_cffi_include.h -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/parse_c_type.h -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/_embedding.h -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/_cffi_errors.h -> build/lib.linux-x86_64-cpython-310/cffi
running build_ext
building '_cffi_backend' extension
creating build/temp.linux-x86_64-cpython-310
creating build/temp.linux-x86_64-cpython-310/c
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -DUSE__T
HREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/include/ffi -I/usr/include/libffi -I/opt/saltstack/salt/include/python3.10 -c c/_cffi_backend.c -o build/temp.linux-x86_64-cpython-310/c/_cffi_backend.o
c/_cffi_backend.c:15:10: fatal error: ffi.h: No such file or directory
15 | #include <ffi.h>
| ^~~~~~~
compilation terminated.
error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for cffi
Running setup.py clean for cffi
Failed to build cffi
Installing collected packages: cffi, saltext-azurerm
Attempting uninstall: cffi
Found existing installation: cffi 1.16.0
Uninstalling cffi-1.16.0:
Successfully uninstalled cffi-1.16.0
Running setup.py install for cffi: started
Running setup.py install for cffi: finished with status 'error'
error: subprocess-exited-with-error
× Running setup.py install for cffi did not run successfully.
│ exit code: 1
╰─> [63 lines of output]
/opt/saltstack/salt/lib/python3.10/site-packages/setuptools/config/setupcfg.py:293: _DeprecatedConfig: Deprecated config in `setup.cfg`
!!
********************************************************************************
The license_file parameter is deprecated, use license_files instead.
This deprecation is overdue, please update your project and remove deprecated
calls to avoid build errors in the future.
See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details.
********************************************************************************
!!
parsed = self.parsers.get(option_name, lambda x: x)(value)
running install
/opt/saltstack/salt/lib/python3.10/site-packages/setuptools/_distutils/cmd.py:66: SetuptoolsDeprecationWarning: setup.py install is deprecated.
!!
********************************************************************************
Please avoid running ``setup.py`` directly.
Instead, use pypa/build, pypa/installer or other
standards-based tools.
See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details.
********************************************************************************
!!
self.initialize_options()
running build
running build_py
creating build
creating build/lib.linux-x86_64-cpython-310
creating build/lib.linux-x86_64-cpython-310/cffi
copying cffi/vengine_gen.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/pkgconfig.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/cparser.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/model.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/api.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/error.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/vengine_cpy.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/ffiplatform.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/cffi_opcode.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/commontypes.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/__init__.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/backend_ctypes.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/setuptools_ext.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/recompiler.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/lock.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/verifier.py -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/_cffi_include.h -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/parse_c_type.h -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/_embedding.h -> build/lib.linux-x86_64-cpython-310/cffi
copying cffi/_cffi_errors.h -> build/lib.linux-x86_64-cpython-310/cffi
running build_ext
building '_cffi_backend' extension
creating build/temp.linux-x86_64-cpython-310
creating build/temp.linux-x86_64-cpython-310/c
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -DUSE__T
HREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/include/ffi -I/usr/include/libffi -I/opt/saltstack/salt/include/python3.10 -c c/_cffi_backend.c -o build/temp.linux-x86_64-cpython-310/c/_cffi_backend.o
c/_cffi_backend.c:15:10: fatal error: ffi.h: No such file or directory
15 | #include <ffi.h>
| ^~~~~~~
compilation terminated.
error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
Rolling back uninstall of cffi
Moving to /opt/saltstack/salt/extras-3.10/_cffi_backend.cpython-310-x86_64-linux-gnu.so
from /tmp/pip-uninstall-uedscs8_/_cffi_backend.cpython-310-x86_64-linux-gnu.so
Moving to /opt/saltstack/salt/extras-3.10/cffi-1.16.0.dist-info/
from /opt/saltstack/salt/extras-3.10/~ffi-1.16.0.dist-info
Moving to /opt/saltstack/salt/extras-3.10/cffi/
from /opt/saltstack/salt/extras-3.10/~ffi
error: legacy-install-failure
× Encountered error while trying to install package.
╰─> cffi
note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.
[notice] A new release of pip available: 22.3.1 -> 24.0
[notice] To update, run: /opt/saltstack/salt/bin/python3.10 -m pip install --upgrade pip
Expected behavior
Installation should complete successfully
Screenshots
If applicable, add screenshots to help explain your problem.
Versions Report
Salt Version:
Salt: 3006.5
Python Version:
Python: 3.10.13 (main, Nov 15 2023, 04:34:27) [GCC 11.2.0]
Dependency Versions:
cffi: 1.16.0
cherrypy: unknown
dateutil: 2.8.1
docker-py: Not Installed
gitdb: Not Installed
gitpython: Not Installed
Jinja2: 3.1.2
libgit2: 1.7.2
looseversion: 1.0.2
M2Crypto: Not Installed
Mako: Not Installed
msgpack: 1.0.2
msgpack-pure: Not Installed
mysql-python: Not Installed
packaging: 22.0
pycparser: 2.21
pycrypto: Not Installed
pycryptodome: 3.9.8
pygit2: 1.14.1
python-gnupg: 0.4.8
PyYAML: 6.0.1
PyZMQ: 23.2.0
relenv: 0.14.2
smmap: Not Installed
timelib: 0.2.4
Tornado: 4.5.3
ZMQ: 4.3.4
System Versions:
dist: ubuntu 20.04.6 focal
locale: utf-8
machine: x86_64
release: 5.15.0-1057-azure
system: Linux
version: Ubuntu 20.04.6 focal
Additional context
Add any other context about the problem here.
Copied from Salt issue 55727 opened by @kveroneau
saltstack/salt#55727 (comment)
Description
When using the azurefs state backend the log file is filled with the following exception:
OSError: [Errno 2] No such file or directory: '/var/cache/salt/master/azurefs/hashes'
2019-12-22 05:14:37,392 [root :272 ][ERROR ][24987] Problem occurred trying to invalidate hash cach for azurefs
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/salt/fileserver/azurefs.py", line 270, in update
shutil.rmtree(hash_cachedir)
File "/usr/lib/python2.7/shutil.py", line 239, in rmtree
onerror(os.listdir, path, sys.exc_info())
File "/usr/lib/python2.7/shutil.py", line 237, in rmtree
names = os.listdir(path)
I attempted to manually create the directory mentioned, however azurefs seems to just delete it, and continues to throw the exception. azurefs seems to work otherwise just fine.
Setup
Configure your salt state modules to use azurefs as a root,
fileserver_backend:
- gitfs
- azurefs
azurefs:
- account_name: Retracted
account_key: Retracted
container_name: Retracted
Steps to Reproduce the behavior
Use the azurefs fileserver_backend and watch the /var/log/salt/master log file for the exceptions.
Versions Report
Salt Version:
Salt: 2019.2.2
Dependency Versions:
cffi: Not Installed
cherrypy: Not Installed
dateutil: 2.5.3
docker-py: 1.9.0
gitdb: 2.0.0
gitpython: 2.1.1
ioflo: Not Installed
Jinja2: 2.9.4
libgit2: 0.24.5
libnacl: Not Installed
M2Crypto: Not Installed
Mako: Not Installed
msgpack-pure: Not Installed
msgpack-python: 0.4.8
mysql-python: Not Installed
pycparser: Not Installed
pycrypto: 2.6.1
pycryptodome: Not Installed
pygit2: 0.24.2
Python: 2.7.13 (default, Sep 26 2018, 18:42:22)
python-gnupg: Not Installed
PyYAML: 3.12
PyZMQ: 16.0.2
RAET: Not Installed
smmap: 2.0.1
timelib: Not Installed
Tornado: 4.4.3
ZMQ: 4.2.1
System Versions:
dist: debian 9.10
locale: UTF-8
machine: x86_64
release: 4.9.0-11-amd64
system: Linux
version: debian 9.10
Description
Update the VM creation code to work with the latest SDK versions.
Description
The User Documentation link in the README.md points to a page that doesn’t exist.
Suggested Fix
Fix the link or deploy the missing pages
Type of documentation
Salt extension user documentation.
Location or format of documentation
Insert page URL if applicable.
Additional context
Add any other context or screenshots about the feature request here.
Is your feature request related to a problem? Please describe.
setting metadata_server_grains: True
in minion conf was not exposing cloud meta data grains in case of Azure VM
Describe the solution you'd like
setting metadata_server_grains: True
in minion conf should expose cloud meta data grains in case of Azure VM
Describe alternatives you've considered
N/A
Additional context
This functionality was merged into the 3006.x core, but wasn't backported to master. It should live here anyway.
ported issue by @localden from: saltstack/salt#63447
Hi folks - I am a PM on the Microsoft Identity SDK team. I've noticed that the project takes a dependency on ADAL. This library will hit end-of-support by June of this year (2023) - the recommended path forward here is to update this to MSAL (there is a Python release).
What's the best path to make the change?
This will affect the Azure token acquisition mechanism - I see that there are no direct references in code to the library, but it likely comes through other libraries (such as msrestazure - which is deprecated).
Need to investigate dependencies in this extension per this information.
Describe the solution you'd like
Support all SDK functions for Azure Key Vault
Additional context
https://github.com/eitrtechnologies/idem-azurerm/tree/master/idem_azurerm/exec/azurerm/keyvault
https://github.com/eitrtechnologies/idem-azurerm/tree/master/idem_azurerm/states/azurerm/keyvault
Description
salt-cloud is configured to a point where 'salt-cloud --full-query' returns everything in the azure subscription.
'salt-cloud -a show_instance ' along with 'salt-cloud -p ' throw the following:
NameError: name 'opts' is not defined
Setup
azure-config:
driver: azurerm
subscription_id: <subscription>
certificate_path: /etc/salt/azure.pem
tenant: <tenant>
client_id: <client>
secret: <secret>
location: southcentralus
azure-ubuntu:
provider: tt-azure-config
image: 'canonical|0001-com-ubuntu-server-focal|20_04-lts-gen2|latest'
size: Standard_D2s_v3
location: 'southcentralus'
ssh_username: azureuser
ssh_publickeyfile: /etc/salt/saltkey.pub
Please be as specific as possible and give set-up details.
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.5 LTS"
Steps to Reproduce the behavior
Install Ubuntu 20.04 LTS server in Azure
Install salt-master, salt-minion, salt-cloud
Install via pip3 saltext-azurerm
apply relevant configurations to provider and profile.
run 'salt-cloud -a show_instance -l debug'
Expected behavior
See details about the instance built and configured as functional master in Azure.
Screenshots
If applicable, add screenshots to help explain your problem.
Versions Report
Salt Version:
Salt: 3004.2
Dependency Versions:
cffi: Not Installed
cherrypy: Not Installed
dateutil: 2.7.3
docker-py: Not Installed
gitdb: 2.0.6
gitpython: 3.0.7
Jinja2: 2.10.1
libgit2: Not Installed
M2Crypto: Not Installed
Mako: Not Installed
msgpack: 0.6.2
msgpack-pure: Not Installed
mysql-python: Not Installed
pycparser: Not Installed
pycrypto: 2.6.1
pycryptodome: 3.6.1
pygit2: Not Installed
Python: 3.8.10 (default, Jun 22 2022, 20:18:18)
python-gnupg: 0.4.5
PyYAML: 5.3.1
PyZMQ: 18.1.1
smmap: 2.0.5
timelib: Not Installed
Tornado: 4.5.3
ZMQ: 4.3.2
Salt Extensions:
saltext.azurerm: 1.0.0
System Versions:
dist: ubuntu 20.04 focal
locale: utf-8
machine: x86_64
release: 5.15.0-1020-azure
system: Linux
version: Ubuntu 20.04 focal
Additional context
Add any other context about the problem here.
Description
The cloud module seems unable to access the execution module code, as the __salt__
dunder isn't present.
[ERROR ] Caught Exception, terminating workers
TRACE: name '__salt__' is not defined
Traceback (most recent call last):
File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/cloud/__init__.py", line 56, in _call
ret = func(*args, **kwargs)
File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/cloud/__init__.py", line 2297, in create_multiprocessing
output = cloud.create(
File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/cloud/__init__.py", line 1226, in create
output = self.clouds[func](vm_)
File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 149, in __call__
return self.loader.run(run_func, *args, **kwargs)
File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1232, in run
return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1247, in _run_as
return _func_or_method(*args, **kwargs)
File "/opt/saltstack/salt/lib/python3.10/site-packages/saltext/azurerm/clouds/azurerm.py", line 1170, in create
vm_request = request_instance(vm_=vm_)
File "/opt/saltstack/salt/lib/python3.10/site-packages/saltext/azurerm/clouds/azurerm.py", line 794, in request_instance
iface_data, public_ips, private_ips = create_network_interface(call="action", kwargs=vm_)
File "/opt/saltstack/salt/lib/python3.10/site-packages/saltext/azurerm/clouds/azurerm.py", line 710, in create_network_interface
pub_ip_data = __salt__["azurerm_network.public_ip_address_create_or_update"](
NameError: name '__salt__' is not defined
After implementing a quick workaround for the former error, the following issue was also found.
[ERROR ] Failed to create VM saltmaster01. Configuration value 'ip_address' needs to be set
Traceback (most recent call last):
File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/cloud/__init__.py", line 1226, in create
output = self.clouds[func](vm_)
File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 149, in __call__
return self.loader.run(run_func, *args, **kwargs)
File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1232, in run
return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1247, in _run_as
return _func_or_method(*args, **kwargs)
File "/opt/saltstack/salt/lib/python3.10/site-packages/saltext/azurerm/clouds/azurerm.py", line 1178, in create
vm_request = request_instance(vm_=vm_)
File "/opt/saltstack/salt/lib/python3.10/site-packages/saltext/azurerm/clouds/azurerm.py", line 802, in request_instance
iface_data, public_ips, private_ips = create_network_interface(call="action", kwargs=vm_)
File "/opt/saltstack/salt/lib/python3.10/site-packages/saltext/azurerm/clouds/azurerm.py", line 741, in create_network_interface
return _get_network_interface(kwargs["iface_name"], kwargs["resource_group"])
File "/opt/saltstack/salt/lib/python3.10/site-packages/saltext/azurerm/clouds/azurerm.py", line 654, in _get_network_interface
public_ips.append(public_ip["ip_address"])
KeyError: 'ip_address'
Expected behavior
Should be able to create a cloud instance with the cloud module.
Description
Using azurerm_keyvault_vault.present throws error stating multiple values for client_id are found, even though only one has been defined.
TypeError: azure.identity._credentials.managed_identity.ManagedIdentityCredential() got multiple values for keyword argument 'client_id'
Setup
State file :
{% set profile = {"subscription_id" : "xxxxx", "tenant": "xxxxx", "secret": "xxxxx", "client_id": "xxxxx" } %}
Ensure key vault exists:
azurerm_keyvault_vault.present:
- name: SaltStackKeyVault
- resource_group: xxx
- location: xxxx
- tenant_id: xxxxx
- sku: Standard
- connection_auth: {{ profile }}
Please be as specific as possible and give set-up details.
Source of code base, states/pillars/templates, are in Azure DevOps repository
Steps to Reproduce the behavior
(Include debug logs if possible and relevant)
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Versions Report
sudo salt-minion --versions-report
Salt Version:
Salt: 3006.6
Python Version:
Python: 3.10.13 (main, Nov 15 2023, 04:34:27) [GCC 11.2.0]
Dependency Versions:
cffi: 1.14.6
cherrypy: 18.6.1
dateutil: 2.8.1
docker-py: Not Installed
gitdb: Not Installed
gitpython: Not Installed
Jinja2: 3.1.3
libgit2: Not Installed
looseversion: 1.0.2
M2Crypto: Not Installed
Mako: Not Installed
msgpack: 1.0.2
msgpack-pure: Not Installed
mysql-python: Not Installed
packaging: 22.0
pycparser: 2.21
pycrypto: Not Installed
pycryptodome: 3.19.1
pygit2: Not Installed
python-gnupg: 0.4.8
PyYAML: 6.0.1
PyZMQ: 23.2.0
relenv: 0.14.2
smmap: Not Installed
timelib: 0.2.4
Tornado: 4.5.3
ZMQ: 4.3.4
Salt Extensions:
saltext.azurerm: 4.0.1
System Versions:
dist: rhel 9.3 Plow
locale: utf-8
machine: x86_64
release: 5.14.0-362.18.1.el9_3.x86_64
system: Linux
version: Red Hat Enterprise Linux 9.3 Plow
/opt/saltstack/salt/bin/pip list
Package Version
adal 1.2.7
azure-batch 12.0.0
azure-common 1.1.28
azure-core 1.24.2
azure-graphrbac 0.61.1
azure-identity 1.15.0
azure-keyvault 4.2.0
azure-keyvault-certificates 4.7.0
azure-keyvault-keys 4.8.0
azure-keyvault-secrets 4.7.0
azure-mgmt-authorization 2.0.0
azure-mgmt-batch 16.2.0
azure-mgmt-compute 27.1.0
azure-mgmt-core 1.3.2
azure-mgmt-dns 8.0.0
azure-mgmt-keyvault 10.1.0
azure-mgmt-monitor 6.0.1
azure-mgmt-msi 6.0.1
azure-mgmt-network 20.0.0
azure-mgmt-privatedns 1.0.0
azure-mgmt-resource 21.1.0
azure-mgmt-storage 21.0.0
azure-mgmt-subscription 3.0.0
azure-mgmt-web 6.1.0
azure-nspkg 3.0.2
azure-storage-blob 12.12.0
azure-storage-common 2.1.0
azure-storage-file 2.1.0
azure-storage-nspkg 3.1.0
azure-storage-queue 12.3.0
certifi 2023.7.22
cffi 1.14.6
charset-normalizer 3.2.0
cheroot 8.5.2
CherryPy 18.6.1
contextvars 2.4
cryptography 41.0.7
distro 1.5.0
idna 3.2
immutables 0.15
importlib-metadata 6.0.0
isodate 0.6.1
jaraco.classes 3.2.1
jaraco.collections 3.4.0
jaraco.functools 2.0
jaraco.text 3.5.1
Jinja2 3.1.3
jmespath 1.0.1
looseversion 1.0.2
MarkupSafe 2.1.2
more-itertools 5.0.0
msal 1.26.0
msal-extensions 1.1.0
msgpack 1.0.2
msrest 0.7.1
msrestazure 0.6.4
oauthlib 3.2.2
packaging 22.0
pip 23.3.2
portalocker 2.8.2
portend 2.4
psutil 5.8.0
pycparser 2.21
pycryptodomex 3.19.1
PyJWT 2.8.0
pyOpenSSL 23.2.0
python-dateutil 2.8.1
python-gnupg 0.4.8
pytz 2022.1
PyYAML 6.0.1
pyzmq 23.2.0
relenv 0.14.2
requests 2.31.0
requests-oauthlib 1.3.1
rpm-vercmp 0.1.2
salt 3006.6
saltext.azurerm 4.0.1
setproctitle 1.3.2
setuptools 68.2.2
six 1.16.0
tempora 4.1.1
timelib 0.2.5
typing_extensions 4.9.0
urllib3 1.26.18
wheel 0.42.0
zc.lockfile 1.4
zipp 3.6.0
Additional context
full error
ID: Ensure key vault exists
Function: azurerm_keyvault_vault.present
Name: SaltStackKeyVault
Result: False
Comment: An exception occurred in this state: Traceback (most recent call last):
File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/state.py", line 2423, in call
ret = self.states[cdata["full"]](
File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__
ret = self.loader.run(run_func, *args, **kwargs)
File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run
return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as
return _func_or_method(*args, **kwargs)
File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1293, in wrapper
return f(*args, **kwargs)
File "/opt/saltstack/salt/lib/python3.10/site-packages/saltext/azurerm/states/azurerm_keyvault_vault.py", line 193, in present
vault = __salt__["azurerm_keyvault_vault.get"](
File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__
ret = self.loader.run(run_func, *args, **kwargs)
File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run
return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as
return _func_or_method(*args, **kwargs)
File "/opt/saltstack/salt/lib/python3.10/site-packages/saltext/azurerm/modules/azurerm_keyvault_vault.py", line 305, in get
vconn = saltext.azurerm.utils.azurerm.get_client("keyvault", **kwargs)
File "/opt/saltstack/salt/lib/python3.10/site-packages/saltext/azurerm/utils/azurerm.py", line 161, in get_client
credentials, subscription_id, cloud_env = _determine_auth(**kwargs)
File "/opt/saltstack/salt/lib/python3.10/site-packages/saltext/azurerm/utils/azurerm.py", line 102, in _determine_auth
credentials = DefaultAzureCredential(authority=authority, **kwargs)
File "/opt/saltstack/salt/lib/python3.10/site-packages/azure/identity/_credentials/default.py", line 163, in __init__
ManagedIdentityCredential(
TypeError: azure.identity._credentials.managed_identity.ManagedIdentityCredential() got multiple values for keyword argument 'client_id'
Started: 12:03:02.867137
Duration: 134.389 ms
Changes:
Description
When trying to use azurerm_resource.deployment_create_or_update
I get the error:
The DeploymentProperties model in the resource Azure module is not available.
Setup
Using a masterless minion, running inside a Docker container.
FROM debian:bullseye-slim
ENV SALT_VERSION "stable"
RUN apt update
RUN apt install --yes python3-pip
RUN mkdir -p /etc/salt/minion.d && \
chmod -R 755 /etc/salt
ADD files/10-minion-overrides.conf /etc/salt/minion.d/
RUN apt-get install curl -y && \
curl -L https://bootstrap.saltstack.com -o install_salt.sh && \
sh install_salt.sh -X -d stable
RUN python3 -m pip install saltext-azurerm
CMD salt-call --version
Steps to Reproduce the behavior
salt-call --local azurerm_resource.deployment_create_or_update name="my-keyvault-name" resource_group="my-resource-group" template_link=salt://key_vault_template.json parameters_link=salt://key_vault_parameters.json subscription_id=xxx-xxx-xxx-xxx
Expected behavior
I expect it to deploy the ARM template with the parameters from the template parameters file.
Versions Report
Salt Version:
Salt: 3005.1
Dependency Versions:
cffi: 1.15.1
cherrypy: Not Installed
dateutil: 2.8.1
docker-py: Not Installed
gitdb: Not Installed
gitpython: Not Installed
Jinja2: 2.11.3
libgit2: Not Installed
M2Crypto: Not Installed
Mako: Not Installed
msgpack: 1.0.0
msgpack-pure: Not Installed
mysql-python: Not Installed
pycparser: 2.21
pycrypto: Not Installed
pycryptodome: 3.9.7
pygit2: Not Installed
Python: 3.9.2 (default, Feb 28 2021, 17:03:44)
python-gnupg: Not Installed
PyYAML: 5.3.1
PyZMQ: 20.0.0
smmap: Not Installed
timelib: Not Installed
Tornado: 4.5.3
ZMQ: 4.3.4
Salt Extensions:
saltext.azurerm: 2.0.0
System Versions:
dist: debian 11 bullseye
locale: utf-8
machine: x86_64
release: 6.1.0-1-amd64
system: Linux
version: Debian GNU/Linux 11 bullseye
adal==1.2.7
azure-batch==12.0.0
azure-common==1.1.28
azure-core==1.24.2
azure-graphrbac==0.61.1
azure-identity==1.10.0
azure-keyvault==4.2.0
azure-keyvault-certificates==4.6.0
azure-keyvault-keys==4.7.0
azure-keyvault-secrets==4.6.0
azure-mgmt-authorization==2.0.0
azure-mgmt-batch==16.2.0
azure-mgmt-compute==27.1.0
azure-mgmt-core==1.3.2
azure-mgmt-dns==8.0.0
azure-mgmt-keyvault==10.0.0
azure-mgmt-msi==6.0.1
azure-mgmt-network==20.0.0
azure-mgmt-privatedns==1.0.0
azure-mgmt-resource==21.1.0
azure-mgmt-subscription==3.0.0
azure-mgmt-web==6.1.0
azure-nspkg==3.0.2
azure-storage-blob==12.12.0
azure-storage-common==2.1.0
azure-storage-file==2.1.0
azure-storage-nspkg==3.1.0
azure-storage-queue==12.3.0
certifi==2020.6.20
cffi==1.15.1
chardet==4.0.0
contextvars==2.4
croniter==0.3.34
cryptography==39.0.0
distro==1.5.0
idna==2.10
immutables==0.14
isodate==0.6.1
Jinja2==2.11.3
jmespath==0.10.0
MarkupSafe==1.1.1
msal==1.20.0
msal-extensions==1.0.0
msgpack==1.0.0
msrest==0.7.1
msrestazure==0.6.4
natsort==7.1.0
oauthlib==3.2.2
portalocker==2.7.0
psutil==5.8.0
pycparser==2.21
pycryptodomex==3.9.7
PyJWT==2.6.0
python-apt==2.2.1
python-dateutil==2.8.1
pytz==2021.1
PyYAML==5.3.1
pyzmq==20.0.0
requests==2.25.1
requests-oauthlib==1.3.1
salt==3005.1
saltext.azurerm==2.0.0
six==1.16.0
systemd-python==234
typing-extensions==4.4.0
tzlocal==2.1
urllib3==1.26.5
Is your feature request related to a problem? Please describe.
Set Virtual Machine Tags via Salt Cloud
Describe the solution you'd like
Set Virtual Machine Tags via Salt Cloud
Describe alternatives you've considered
N/A
Additional context
As per saltext.azurerm.states.azurerm_compute_virtual_machine.present Tags may be set in the State Module, not the Cloud module
Copied from Salt issue 60801 opened by @hirez-masmith
saltstack/salt#60801 (comment)
Description
AzureFS filesystem module does not function with latest versions of azure-storage wheel due to missing version attribute within their wheel.
Microsoft has said they won't be fixing it.
Azure/azure-storage-python#535
Setup
Add azurefsfs (extra FS needed due to saltstack/salt#58041) to fileserver configuration after roots.
Please be as specific as possible and give set-up details.
Steps to Reproduce the behavior
I had to add custom logging into the azurefs.py file to detect the error properly because the module, as written, doesn't actually report anything to any logs when it fails to initialize. At a minimum, it would be nice for this module to report why it's not doing what it should be doing so this level of spelunking isn't necessary.
Custom logging was added to the try at the top of the file attempting to import azure.storage. I had to move the log instantiation above this try block as well.
except (ImportError, AttributeError) as e:
HAS_AZURE = False
log.error(e)
Error that was then reported to the saltmaster log is:
2021-08-27 14:23:35,120 [root :79 ][ERROR ][7246] module 'azure.storage' has no attribute '__version__'
After commenting out the version check (since Microsoft doesn't want to follow conventions stuck_out_tongue) I hit an error that the hashes directory wasn't found on disk.
FileNotFoundError: [Errno 2] No such file or directory: '/var/cache/salt/master/azurefs/hashes'
I created that directory to attempt to bypass the error (created as the same user the master is running as)
I then discovered that the CloudStorageAccount
object being utilized has been moved in the latest azure storage wheel.
So I modified the file once again to import the object properly via:
from azure.storage.common.cloudstorageaccount import CloudStorageAccount
Within the same try block for the azure.storage wheel in general. I did the import this way as is convention within our internal codebase.
This finally allowed the FS to at least be able to query the available files / dirs within our private container.
Sending this in, in the hopes that I won't have to maintain these changes in all subsequent version updates of the salt master.
Expected behavior
The AzureFS filesystem package behaves properly with versions of the azure.storage wheel in line with latest iterations of the Azure Python SDK.
Versions Report
Salt Version:
Salt: 3002.2
Dependency Versions:
cffi: 1.14.4
cherrypy: unknown
dateutil: 2.6.1
docker-py: Not Installed
gitdb: 2.0.3
gitpython: 2.1.8
Jinja2: 2.10
libgit2: Not Installed
M2Crypto: Not Installed
Mako: Not Installed
msgpack: 0.5.6
msgpack-pure: Not Installed
mysql-python: Not Installed
pycparser: 2.20
pycrypto: 2.6.1
pycryptodome: 3.4.7
pygit2: Not Installed
Python: 3.6.9 (default, Jan 26 2021, 15:33:00)
python-gnupg: 0.4.1
PyYAML: 3.12
PyZMQ: 17.1.2
smmap: 2.0.3
timelib: Not Installed
Tornado: 4.5.3
ZMQ: 4.2.5
System Versions:
dist: ubuntu 18.04 Bionic Beaver
locale: UTF-8
machine: x86_64
release: 5.4.0-1039-azure
system: Linux
version: Ubuntu 18.04 Bionic Beaver
Additional context
Add any other context about the problem here.
Copied from Salt issue 61425 opened by @Dantin1234
saltstack/salt#61425 (comment)
Hello,
Is your feature request related to a problem? Please describe.
I want to use the azure loadbalancer to loadbalance my traffic to my virtual machines created by salt-cloud and managed via salt. But it is not possible to configure an availability zone to an vm via salt. The azure loadbalancer is not usable with salt managed vms in azure until this feature is implemented
Describe the solution you'd like
Add availability zone as configuration setting in "cloud.profiles.d" or as setting usable in a mapping file.
Additional context
azure availability zone documentation
best regards
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.