jclouds/providers/azurecompute-arm
Dani Estevez b2cc647ff2 Implements metrics and metricdefinitions API 2017-06-28 08:58:54 +02:00
..
src Implements metrics and metricdefinitions API 2017-06-28 08:58:54 +02:00
README.md Add tenant Id lookup command 2017-01-10 18:28:45 +01:00
pom.xml Update ImageExtension to work with Managed Disks 2017-04-24 08:22:43 +02:00

README.md

jclouds Labs - Azure Compute ARM Provider

Build status for azurecomputearm module: Build Status

Setting Up Test Credentials

Create a Service Principal

Install and configure Azure CLI following these steps.

Using the Azure CLI, run the following commands to create a service principal

# Set mode to ARM
azure config mode arm

# Enter your Microsoft account credentials when prompted
azure login

# Set current subscription to create a service principal
azure account set <Subscription-id>

# Create an AAD application with your information.
azure ad app create --name <name> --password <password> --home-page <home-page> --identifier-uris <identifier-uris>

# For example: azure ad app create --name "jcloudsarm"  --password abcd --home-page "https://jcloudsarm" --identifier-uris "https://jcloudsarm"

# Output will include a value for `Application Id`, which will be used for the live tests

# Create a Service Principal
azure ad sp create <Application-id>

# Output will include a value for `Object Id`, to be used in the next step 

Run the following commands to assign roles to the service principal

# Assign roles for this service principal
azure role assignment create --objectId <Object-id> -o Contributor -c /subscriptions/<Subscription-id>/

Look up the the tenant Id

azure account show -s <Subscription-id> --json

# output will be a JSON which will include the `Tenant id`

Verify service principal

azure login -u <Application-id> -p <password> --service-principal --tenant <Tenant-id>

Run Live Tests

Use the following to run one live test:

mvn -Dtest=<name of the live test> \
    -Dtest.azurecompute-arm.identity="<Application-id>" \
    -Dtest.azurecompute-arm.credential="<password>" \
    -Dtest.azurecompute-arm.endpoint="https://management.azure.com/subscriptions/<Subscription-id>" \
    -Dtest.oauth.endpoint="https://login.microsoftonline.com/<Tenant-id>/oauth2/token"
    integration-test -Plive

Use the following to run all the live tests:


mvn clean verify -Plive \
    -Dtest.azurecompute-arm.identity="<Application-id>"" \
    -Dtest.azurecompute-arm.credential="<password>"" \
    -Dtest.azurecompute-arm.endpoint="https://management.azure.com/subscriptions/<Subscription-id>"" \
    -Dtest.oauth.endpoint=https://login.microsoftonline.com/<Tenant-id>/oauth2/token

How to use it

Azure Compute ARM provider works exactly as any other jclouds provider. Notice that as Azure supports dozens of locations, operations like listImages can be really time-consuming. To limit the scope of such operations there are some additional properties you may want to use:

jclouds.azurecompute.arm.publishers

which is by default Canonical,RedHat

and

jclouds.regions

which is by default null. If you want to target only the north europe region, you can use

jclouds.regions="northeurope"