Azure locations installation
Run a Control Plane on Azure using Container Apps and Azure Files, to set up your Private Locations and run load generators in your own Azure network.
First of all, you should have followed introduction instructions to configure Gatling Cloud for receiving a new control plane. Please check this section first.
Azure Container Apps is a managed serverless container services. You can use it to deploy your own control plane instances without creating dedicated virtual machines.
Keep in mind that this is only one way to install a control plane in Azure. You can use any other Azure service able to deploy a container.
Azure services overview
Following Azure services are needed for this control plane installation:
- Container Apps: the base product for containerized serverless applications
- Azure Files: file share for configuration file storage
Mounting the configuration file
Control plane locations configuration is based on a file that has to be shared with the application.
See control plane configuration sections of Gatling Cloud documentation for details.
Azure storage account
Azure storage account can contain and manage any data object storage you need for your applications. For details, please refer to Azure documentation.
On your Azure portal, click on “Create a resource” button, and choose “Storage account”
From there, configure a new storage account according to your needs and policies.
Write down the storage account name, you will need it in further steps.
Azure File Share
File Share creation
Once again, refer to the Azure File Share documentation for details.
In your storage account, let’s create a File Share for the Control Plane configuration file:
- Access to your storage account page
- Click on “File shares” in the side menu
- Click on “File share” creation button in the top menu
- Configure and finalize creation
Write down the file share name, you will need it in further steps.
Upload control plane configuration file
Upload your configuration file in your new File Share in order to make it available for the control plane:
- Access to your File share page
- Click on “Overview” in the side menu
- Click on “Upload” button in the top menu
- Select your control plane configuration file
- Validate for uploading it
You should see your control plane configuration file in the File Share.
Please refer to Azure private locations configuration for more details about the configuration file.
Container App
A Container App is what will manage the proper control plane application.
There are several ways to create and configure it, as described in Azure Container Apps documentation. We are going to consider only the Azure portal way of doing it.
Control plane application creation
On your Azure portal, click on “Create a resource” button, and choose “Container Apps”.
Start by referencing basic information about your app, as requested by the wizard.
You can configure freely the subscription, group, etc. at this step, according to your policies.
You will then need to configure the Gatling control plane container as the base image of the application:
- Go to “App settings tab”
- Uncheck “Use quickstart image”
- Configure a container name as you desire
- Choose “Docker Hub or other registries” as image source
- Choose “Public” as image type
- Indicate
docker.io
in registry login server field - Indicate
gatlingcorp/control-plane:latest
in image and tag field
Refer to private location introduction section of this documentation for more information about this docker image.
Finally, review and create your control plane application. This will create two new resources in the configured resource group:
- The Container App itself
- A Container App Environment, associated to the Container App
Azure credentials
Required Permissions
Before configuring Azure credentials, it’s important to ensure that your application has the necessary permissions to manage Azure virtual machines throughout the control plane lifecycle.
The required actions are as follows:
Microsoft.MarketplaceOrdering/agreements/offers/plans/read
Microsoft.MarketplaceOrdering/agreements/offers/plans/sign/action
Microsoft.Resources/subscriptions/resourceGroups/write
Microsoft.Resources/subscriptions/resourceGroups/delete
Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/read
Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/write
Microsoft.Network/virtualNetworks/read
Microsoft.Network/virtualNetworks/subnets/join/action
Microsoft.Network/publicIPAddresses/write
Microsoft.Network/networkInterfaces/write
Microsoft.Network/networkInterfaces/join/action
Microsoft.Storage/storageAccounts/read
Microsoft.Storage/storageAccounts/listkeys/action
Microsoft.Compute/galleries/images/versions/read
Microsoft.Compute/virtualMachines/read
Microsoft.Compute/virtualMachines/write
To grant these permissions, create a new role and assign it to the managed identity as detailed below.
Managed identity
Azure managed identities enable you to automatically configure control plane credentials using an Active Directory identity, which is automatically set up when the application starts.
For more information, refer to the Azure managed identities for container apps documentation.
Steps to configure:
- Navigate to your application page.
- Click on “Identity” in the side menu.
- Set the status to “On.”
- Wait for the automatic setup of the managed identity.
- Click on Azure role assignments and set role with required permissions
A managed identity is automatically assigned to your application instances and will be used by the control plane to manage Azure resources.
Mounting configuration file share
Configure in environment
Before effectively mounting the File Share you created earlier, you need to configure access to it in the Container App Environment:
- Navigate to the Container App Environment newly created
- Click on “Azure Files” in the side menu
- Click on “Add” button in the top menu
- “Name” field is free, this is the name you will refer to in the application container configuration
- “Storage account name” and “Storage account key” can be found in the “Access keys” section of your storage account page
- “File share” should be the file share name you created earlier
Double check info entered manually, and validate the creation.
Configure application containers
We can now mount the File Share on application containers:
-
Navigate to your application page on the portal
-
Click on “Container” in the side menu (you can check their configuration while you are here)
-
Click on “Edit and deploy” button in the top menu
-
In the “Container” tab, click on the existing container automatically created at application creation. Or, there is none, click on the “Add” button"
-
Go to “Volume mounts” tab
-
Select your newly created file share in “File share name” drop box
-
Enter “/app/conf” as “Mount path (folder)”
-
Check next step before validating changes (additional configuration) since you can do it at the same time.
Additional containers configuration
During the application container configuration step, you can set scale rules for your application.
- In the “Scale” tab, set the min and max instances with the ruler
- Set rules if you need to (not mandatory)
- Don’t forget to validate your changes
Use your new control plane
Once you’ve configured your control plane container, it should automatically start a new revision with desired configuration.
You can check logs in your application “Log stream” menu, or perform more complex requests in “Logs” menu. Be sure to select the currently active revision logs.
Now that your control plane is up and running, after a short time you should see your control plane with up status in Gatling Enterprise Cloud.
Update your control plane
To update your control plane, restart your Azure Container App.
Being configured with the image gatlingcorp/control-plane:latest
, it will automatically pull the latest published version:
- Go on your Container App page
- Click on the running revision
- Hit the Restart button
Your control plane restarts, using the latest image published on Docker Hub.
If you did not use the tag latest
, you will have to create a new revision and specify the control plane image you want to deploy.
Deploy infrastructure using Terraform
Gatling provides Terraform modules to set up Azure infrastructure for Private Locations. One module specifies the load generator location(s), and the second module deploys the control plane. To use the Terraform module, visit our dedicated GitHub repository