in deploy/azure/generate_dev_template.py [0:0]
def modify_resource(resource):
"""
Modify a single resource in-place.
:param resource: Parsed dictionary of the resource
"""
# Delete generated key pair from all dependencies
depends_on = [d for d in resource.get("dependsOn", []) if not d.startswith("cloudbeatGenerateKeypair")]
if resource["name"] == "cloudbeatVM":
# Use user-provided public key
resource["properties"]["osProfile"]["linuxConfiguration"]["ssh"]["publicKeys"] = [
{
"path": "/home/cloudbeat/.ssh/authorized_keys",
"keyData": "[parameters('PublicKeyDevOnly')]",
},
]
elif resource["name"] == "cloudbeatVNet":
# Add network security group to virtual network
nsg_resource_id = "[resourceId('Microsoft.Network/networkSecurityGroups', 'cloudbeatNSGDevOnly')]"
resource["properties"]["subnets"][0]["properties"]["networkSecurityGroup"] = {"id": nsg_resource_id}
depends_on += [nsg_resource_id]
elif resource["name"] == "cloudbeatNic":
# Add public IP to network interface
public_ip_resource_id = "[resourceId('Microsoft.Network/publicIPAddresses', 'cloudbeatPublicIPDevOnly')]"
resource["properties"]["ipConfigurations"][0]["properties"]["publicIpAddress"] = {"id": public_ip_resource_id}
depends_on += [public_ip_resource_id]
elif resource["name"] == "cloudbeatVM/customScriptExtension":
# Modify agent installation to *not* disable SSH
resource["properties"]["settings"] = {
"fileUris": ["https://raw.githubusercontent.com/elastic/cloudbeat/main/deploy/azure/install-agent-dev.sh"],
"commandToExecute": (
"[concat('"
"bash install-agent-dev.sh ', "
"parameters('ElasticAgentVersion'), ' ', "
"parameters('ElasticArtifactServer'), ' ', "
"parameters('FleetUrl'), ' ', "
"parameters('EnrollmentToken'))]"
),
}
elif resource["name"] == "cloudbeat-vm-deployment":
resource["properties"]["parameters"] = {"PublicKeyDevOnly": {"value": "[parameters('PublicKeyDevOnly')]"}}
resource["properties"]["template"]["parameters"] = {"PublicKeyDevOnly": {"type": "string"}}
modify_vm_deployment_template_resources_array(resource["properties"]["template"])
if depends_on:
resource["dependsOn"] = depends_on