The Microsoft Azure Integration is used to connect JFrog Pipelines to Microsoft Azure to manage cloud services and entities.

This integration uses a password-based authentication service principal for connecting to and commanding your Azure cloud service. You must create an for this purpose, and provide the generated keys to this integration.

For example, using the :

az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/SUBSCRIPTION_ID" 

will produce the needed key values:

Creating an Integration

You can add this integration by following steps on the Managing Pipelines Integrations page.

Here is the information you need to create this integration:

  • Name -- choose a friendly name for the integration
  • App Id -- the appId key used for service principal authentication.
  • Password -- the password key used for service principal authentication.
  • Tenant -- the tenant key used for service principal authentication.


Usage

An Azure Keys integration can be used in Bash steps for access to its properties through environment variables. This integraton cannot currently be used with any resources.

Make sure that your service principal has adequate permission to perform whatever actions you plan to take in your custom script. This could mean ACR reader role to pull images, AKS contributor to create deployments, etc.

In order for Pipelines to run dynamic node pools on Azure, you will need to  so that the JFrog Pipelines buildplane VM images can be used. The following Azure CLI commands must be run with the Azure service principal used by this integration:

az vm image terms accept --plan x86_64-ubuntu_16_04 --offer pipelines-buildplane --publisher jfrog
az vm image terms accept --plan x86_64-ubuntu_18_04 --offer pipelines-buildplane --publisher jfrog
az vm image terms accept --plan x86_64-centos_7 --offer pipelines-buildplane --publisher jfrog
az vm image terms accept --plan x86_64-windows_server_2019 --offer pipelines-buildplane --publisher jfrog


Default Environment Variables

When you create a resource with this integration, a set of environment variables is automatically made available.

Environment variableDescription
int_<integration-name>_appIdAppId supplied in the integration
int_<integration-name>_passwordPassword supplied in the integration
int_<integration-name>_tenantTenant supplied in the integration