StarWind is a hyperconverged (HCI) vendor with focus on Enterprise ROBO, SMB & Edge

[Azure] Deploy a Service Catalog for your different teams in your company

  • June 19, 2018
  • 7 min read
Cloud and Virtualization Architect. Florent is specializing in public, hybrid, and private cloud technologies. He is a Microsoft MVP in Cloud and Datacenter Management and an MCSE in Private Cloud.
Cloud and Virtualization Architect. Florent is specializing in public, hybrid, and private cloud technologies. He is a Microsoft MVP in Cloud and Datacenter Management and an MCSE in Private Cloud.

Azure - Service Catalog for your different teams in your company

Microsoft released a new feature some month ago that allow you to create a service catalog, for your team, directly in Azure. With this feature, you can prebuild templates, control parameters, and give the possibility to your teams to deploy applications, without doing mistakes or select big VM size that are expensive.

The documentation is available here:

The template is composed of 2 files:

  • mainTemplate.json
  • createUiDefinition.json

The first one is the ARM template that you can deploy in Azure, without UI. The second one is the user interface with parameters. In the example of today, we will deploy a new virtual machine, in a new network. Create a new file named mainTemplate.json (case sensitive) and insert the following code:

You can adapt this template with your values. Now, create a second file named createUiDefinition.json and paste the following code:

On outputs, the variable must be the same as in your template, otherwise, it will fail. When it’s done, zip your 2 files, on the root level:



We’ll now create a new resource group in Azure, that will host the storage account that will contain our template (the zip file). Execute the following PowerShell script to do that, by adapting your Subscription ID, the Resource Group name and the location. Adapt the path where the file is located and the name of the zip file:

Azure - Service Catalog - AppContainer

We will now create the managed application that will be available for your team. You can assign permissions to a group, and choose which RBAC role you want to give, Contributor in my case. Give a name to your application. This application will be shown in your resource group. You can change the display name for your teams, and the description:

If you’ve the following error when trying to deploy the managed application:


It’s because you don’t register the Microsoft.Solutions provider. Go to your subscription in Resource Providers, and register Microsoft.Solutions:



The application has been deployed successfully:


You’ve now the application, with your storage account:


Go to the + button in Azure, with an account that has the right to deploy (in the group that you provided earlier) and search for Service Catalog. Choose Service Catalog Managed Application and click on Create. You’ll be able to see the application that you deployed (the following steps can be done in PowerShell). Select on it and click on Create :


Choose the resource group where you want to deploy this, and the location. On the next screen, you will have your first step (that is in the createUIdefinition) who is the asking of credentials:


In the step after, give a name to your VM, choose a size (that we limit to 3 in our template) and choose a public ip or create a new one. Provide a unique DNS name too:



Validation passed, you can deploy your VM 😊


The deployment started:


And, after 5 minutes, the deployment finished correctly:


If you look resources in the RG that has been created, you see the VNet, the VM, etc:


And in the parent RG that you chose, you’ll see the application:


If you click on it, you’ll be redirected to your RG with the name of the parent RG and some random characters.


You can now connect to the VM, with the DNS that you provided before:


This new feature is very interesting to provide the possibility to deploy web app, vm, etc, by limiting the sizing and so, the cost 😊

Hey! Found Florent’s article helpful? Looking to deploy a new, easy-to-manage, and cost-effective hyperconverged infrastructure?
Alex Bykovskyi
Alex Bykovskyi StarWind Virtual HCI Appliance Product Manager
Well, we can help you with this one! Building a new hyperconverged environment is a breeze with StarWind Virtual HCI Appliance (VHCA). It’s a complete hyperconverged infrastructure solution that combines hypervisor (vSphere, Hyper-V, Proxmox, or our custom version of KVM), software-defined storage (StarWind VSAN), and streamlined management tools. Interested in diving deeper into VHCA’s capabilities and features? Book your StarWind Virtual HCI Appliance demo today!