terraform-azurerm-caf-enter.../locals.telemetry.core.tf

61 строка
2.2 KiB
HCL

# Telemetry is collected by creating an empty ARM deployment with a specific name
# If you want to disable telemetry, you can set the disable_telemetry variable to true
# This file contains telemetry for the core module
# The following locals are used to create the bitfield data, dependent on the module configuration
locals {
# Bitfield bit 1 (LSB): Is deploy core LZs enabled?
telem_core_deploy_core_landing_zones = local.deploy_core_landing_zones ? 1 : 0
# Bitfield bit 2: Is deploy corp LZ set?
telem_core_deploy_corp_landing_zones = local.deploy_corp_landing_zones ? 2 : 0
# Bitfield bit 3: Is deploy online LZ set?
telem_core_deploy_online_landing_zones = local.deploy_online_landing_zones ? 4 : 0
# Bitfield bit 4: Is deploy SAP LZ set?
telem_core_deploy_sap_landing_zones = local.deploy_online_landing_zones ? 8 : 0
# Bitfield bit 5: Are there any custom LZs configured?
telem_core_custom_lzs_configured = length(local.custom_landing_zones) > 0 ? 16 : 0
# Bitfield bit 6: Is a custom library path set?
telem_core_custom_lib_configured = local.library_path != "" ? 32 : 0
}
# The following locals calculate the telemetry bit field by summiung the above locals and then representing as hexadecimal
# Hex number is represented as four digits wide and is zero padded
locals {
telem_core_bitfield_denery = (
local.telem_core_deploy_core_landing_zones +
local.telem_core_deploy_corp_landing_zones +
local.telem_core_deploy_online_landing_zones +
local.telem_core_deploy_sap_landing_zones +
local.telem_core_custom_lzs_configured +
local.telem_core_custom_lib_configured
)
telem_core_bitfield_hex = format("%04x", local.telem_core_bitfield_denery)
}
# This construicts the ARM deployment name that is used for the telemetry.
# We shouldn't ever hit the 64 character limit but use substr just in case
locals {
telem_core_arm_deployment_name = substr(
format(
"pid-%s_%s_%s_%s",
local.telem_core_puid,
local.module_version,
local.telem_core_bitfield_hex,
local.telem_random_hex,
),
0,
64
)
}
# Condition to determine whether we create the core telemetry deployment
locals {
telem_core_deployment_enabled = !local.disable_telemetry
}