perfkitbenchmarker/providers/azure/flags.py (144 lines of code) (raw):
# Copyright 2015 PerfKitBenchmarker Authors. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Module containing flags applicable across benchmark run on Azure."""
from absl import flags
NONE = 'None'
READ_ONLY = 'ReadOnly'
READ_WRITE = 'ReadWrite'
flags.DEFINE_enum(
'azure_host_caching',
NONE,
[NONE, READ_ONLY, READ_WRITE],
'The type of host caching to use on Azure data disks.',
)
# Azure Storage Account types. See
# http://azure.microsoft.com/en-us/pricing/details/storage/ for more information
# about the different types.
LRS = 'Standard_LRS'
ULRS = 'UltraSSD_LRS'
PLRS = 'Premium_LRS'
PZRS = 'Premium_ZRS'
ZRS = 'Standard_ZRS'
GRS = 'Standard_GRS'
GZRS = 'Standard_GZRS'
RAGRS = 'Standard_RAGRS'
RAGZRS = 'Standard_RAGZRS'
STORAGE_V2 = 'StorageV2'
# These are deprecated in favor of StorageV2
STORAGE = 'Storage'
BLOB_STORAGE = 'BlobStorage'
BLOCK_BLOB_STORAGE = 'BlockBlobStorage'
VALID_TIERS = ['Basic', 'Standard', 'Premium']
# Azure redis cache tiers. See
# https://docs.microsoft.com/en-us/azure/redis-cache/cache-faq for information.
VALID_CACHE_SIZES = [
'C0',
'C1',
'C2',
'C3',
'C4',
'C5',
'C6',
'P1',
'P2',
'P3',
'P4',
'P5',
]
flags.DEFINE_enum(
'azure_storage_type',
LRS,
[LRS, PLRS, ULRS, ZRS, GRS, RAGRS],
'The type of storage account to create. See '
'http://azure.microsoft.com/en-us/pricing/details/storage/ for more '
'information. To use remote ssd scratch disks, you must use Premium_LRS. '
'If you use Premium_LRS, you must use the DS series of machines, or else '
'VM creation will fail.',
)
AZURE_BLOB_STORAGE_ACCOUNT_KIND = flags.DEFINE_enum(
'azure_blob_account_kind',
STORAGE_V2,
[STORAGE_V2, BLOCK_BLOB_STORAGE, BLOB_STORAGE, STORAGE],
'Type of Azure storage account to create for blob storage. Defaults to'
' StorageV2. BlockBlobStorage is required for Premium block blobs. See'
' https://learn.microsoft.com/en-us/azure/storage/common/storage-account-overview#types-of-storage-accounts'
' for more information.',
)
AZURE_BLOB_STORAGE_TYPE = flags.DEFINE_enum(
'azure_blob_storage_type',
ZRS,
[ZRS, LRS, PLRS, PZRS, GRS, RAGRS, GZRS, RAGZRS],
'Azure storage Account SKU to use for blob storage. Defaults to '
"'Standard_ZRS' unlike --azure_storage_type which defaults to "
"'Standard_LRS'. This is consistent with other clouds that default to "
'zonal disks, but regional object storage buckets.',
)
flags.DEFINE_string(
'azure_preprovisioned_data_account',
None,
'Azure storage account containing Azure blob containers. Containing '
'preprovisioned data. This does not align with GCS or S3 where packages '
'are in the object path instead of the container/bucket name.',
)
flags.DEFINE_string(
'azure_preprovisioned_data_subscription',
None,
'Azure subscription id or name for the preprovisioned data account. If not '
'provided, Azure will look in the default subscription. Even though '
'storage accounts are globally unique, Azure requires specifying the '
'subscription to access.',
)
flags.DEFINE_boolean(
'azure_accelerated_networking',
False,
'Enable Azure Accelerated Networking. See '
'https://docs.microsoft.com/en-us/azure/virtual-network/'
'create-vm-accelerated-networking-cli'
'for more information.',
)
AZURE_SUBNET_ID = flags.DEFINE_string(
'azure_subnet_id',
None,
'The id of an already created subnet to use instead of creating a new one.',
)
flags.DEFINE_enum(
'azure_tier',
'Basic',
VALID_TIERS,
'Performance tier to use for the machine type. Defaults to Basic.',
)
flags.DEFINE_integer(
'azure_compute_units',
None,
'Number of compute units to allocate for the machine type',
)
REDIS_SIZE = flags.DEFINE_enum(
'azure_redis_size',
'C3',
VALID_CACHE_SIZES,
'Azure redis cache size to use.',
)
flags.DEFINE_boolean(
'azure_low_priority_vms',
False,
'Whether to set the priority to low for Azure VMs',
)
flags.DEFINE_boolean(
'bootstrap_azure_service_principal',
True,
'Whether to use the current service principal credentials '
'when passing a service principal to a service. This has '
'no effect if the logged in user is not a service '
'principal. This is useful, because service principals '
"usually lack the 'User Authentication Admin' role that "
'allows creation of new service principals.',
)
flags.DEFINE_enum(
'sqldatawarehouse_client_interface',
'CLI',
['CLI', 'JDBC'],
'The Runtime Interface used when interacting with Synapse.',
)
flags.DEFINE_string('query_timeout', '600', 'Query timeout in seconds.')
AZURE_ATTACH_DISK_WITH_CREATE = flags.DEFINE_boolean(
'azure_attach_disk_with_create',
True,
'Whether to create PD disks at VM creation time. Defaults to True.',
)
AZURE_SECURE_BOOT = flags.DEFINE_bool(
'azure_secure_boot',
None,
'Enable/Disable secure boot of the VM to allow unsigned operating systems'
' and drivers. Defaults to None to fallback to Azure default behavior',
)